众所周知,C++03 中的递增和递减enum
是非法的,因为 C++03enum
可能不是连续的。但是 C++11 标准引入了新的enum class
构造,根据 Wikipedia,它更加类型安全,因为它不是基于任何简单的可数类型构建的。所以现在,如果我们有一个枚举值的有界列表,我们可以写类似
enum class Colors { Black, Blue, White };
// ...
Colors color = Colors::White;
color++;
它会正常工作吗(例如 will return 的增加和will White
returnBlack
的减少)?Black
White
如果我们不能编写这样的代码,您是否知道来自boost
或来自Qt
为我们提供此功能的任何类似行为的类(正确的递增和递减)?