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