给定程序:
enum E : int
{
A, B, C
};
g++ -c test.cpp
运行得很好。但是,clang++ -c test.cpp
会显示以下错误:
test.cpp:1:6: error: ISO C++ forbids forward references to 'enum' types
enum E : int
^
test.cpp:1:8: error: expected unqualified-id
enum E : int
^
2 errors generated.
这些错误消息对我来说没有任何意义。我在这里没有看到任何向前的引用。
发布于 2016-08-05 05:29:39
为枚举指定底层类型是C++11语言的一项功能。要编译代码,必须添加开关-std=c++11
。这对GCC和克隆来说都是有效的。
对于C++03中的枚举,基础整数类型是实现定义的,除非枚举数的值不适合整型或无符号整型。(然而,Microsoft的编译器自2005年起就允许将枚举的底层类型指定为专有扩展。)
https://stackoverflow.com/questions/38777701
复制相似问题