c++ - 是否可以获取基本字符的枚举类的元素数量或核对值?
问题描述
如果我有;
enum class AcceptableFooChars : char
{
curlybracketopenchar = '{',
curlybracketclosechar = '}',
commachar = ',',
fullstopchar = '.',
dollarsignchar = '$'
}
那么有没有更简洁的获取方式;
static std::string acceptableFooCharacters() noexcept
{
constexpr std::size_t enumElementCount {5};
static const char acceptableChars[ enumElementCount ] {
static_cast<char>(AcceptableFooChars::curlybracketopenchar ),
static_cast<char>(AcceptableFooChars::curlybracketclosechar),
static_cast<char>(AcceptableFooChars::commachar ),
static_cast<char>(AcceptableFooChars::fullstopchar ),
static_cast<char>(AcceptableFooChars::dollarsignchar )
};
return {acceptableChars};
}
通过访问枚举的所有元素或简单地以更自动化且易于维护的方式计算枚举中可用的值?
解决方案
推荐阅读
- typescript - 如何拒绝 TypeScript 中的任意键?
- fusionauth - 移动登录到 FusionAuth 工作流程:FusionAuth 通过“应用程序”或“应用程序后端”在 /api/login 上调用?
- db2 - 将数据从 IBM Object Storage 文件加载到 Cloud DB2
- spring-kafka - spring.kafka.consumer.auto-offset-rest 和 ConsumerConfig.AUTO_OFFSET_RESET_CONFIG 有什么区别?
- python - ModuleNotFoundError:没有名为“wifi”的模块
- angular - Angular 8:预定义值作为模型中的属性
- php - 为什么在页面刷新和页面访问时按钮被认为是按下的?
- javascript - 在 jquery 中将 li 添加到 ul 时无法执行复选框事件
- json - Vue - 循环中的项目 - 没有重复
- mysql - 更新时间戳列时的奇怪行为