我使用了这段代码:
enum E {
E1, E2, E3, MaxNum
};
const char * ENames[ MaxNum ] = {
"E1", "E2", "E3"
};
并没有问题。现在我想使用“现代” enum class
。代码现在如下所示:
enum class E {
E1, E2, E3, MaxNum
};
const char * ENames[ E::MaxNum ] = {
"E1", "E2", "E3"
};
并得到一个错误
错误:数组“ENames”的大小具有非整数类型“E”</p>
错误:'const char* [1]' 的初始化程序太多</p>
问:为什么enum class
在 c++11 中变得非整数,而通常的枚举是整数?
什么是一个问题的决定?如何声明一个大小为枚举的数组enum class
?
这里 - http://ideone.com/SNHTYe - 是一个简单的例子。
谢谢你。