作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
我的 C++ 代码使用位集来存储在我的数据结构中找到的枚举的哪些值(它实际上有点复杂,但这对问题来说无关紧要)。
这意味着当我有一个像这样的枚举时:
enum Color
{
RED
, GREEN
, BLUE
};
我想这样定义我的位集:
std::bitset<3>
当然我不想硬编码值 3。
在某些情况下,我可以简单地向枚举添加一个“终止符”,如下所示:
enum Color
{
RED
, GREEN
, BLUE
, _COLOR_TERMINATOR
};
我可以这样写:
std::bitset<_COLOR_TERMINATOR>
但我不能在所有枚举中都这样做。如果我对我的某些枚举执行此操作,代码检查器(如 Lint)会提示并非所有枚举值都用于 switch 语句。
有没有办法在不改变枚举本身的情况下获得枚举中的最大值?例如。类似 std::max<Color>
的东西?
使用 Visual Studio 2013 和 C++。
谢谢。
我是一名优秀的程序员,十分优秀!