【发布时间】:2013-12-25 14:42:28
【问题描述】:
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
gcc 版本 4.6.3
如何将enum class 实例转换为int?
【问题讨论】:
-
问题是什么?顺便说一句,这在 GCC 4.8.1 和 clang 3.3 上编译。
-
这应该可以。考虑更新你的编译器,或者只是编写你自己的转换函数。