enum class TestEnum : int
{
first,
second
};
int main()
{
int n = static_cast<int>(TestEnum::second); // error
return 0;
}
构建日志:
g++ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++0x -MMD -MP -MF"src/test.d" -MT"src/test.d" -o "src/test.o" "../src/test.cpp"
../src/test.cpp: In function ‘int main()’:
../src/test.cpp:20:20: error: cannot convert ‘TestEnum’ to ‘int’ in initialization
海湾合作委员会版本 4.6.3
如何将 enum class
实例转换为 int
?
最佳答案
您正在尝试使用 -std=c++0x
键编译您的代码。但是强类型枚举enum class
是C++11的特性,所以你最好使用更新的GCC编译器。 GCC 4.7 或更高版本是合适的,它有 -std=c++11
命令行键:http://gcc.gnu.org/projects/cxx0x.html
此代码有效:http://ideone.com/4IQPUx
关于c++ - 无法使用 static_cast 将枚举类转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20773898/