我想使用具有默认 int 实现的 C++11 范围枚举:
enum class Color
{
gray = 1,
red = 2
};
这使用 gcc 编译,但是:
Color color = Color::red; // 'Color' is not a class or a namespace
Color color = red; // 'red' was not declared in this scope
我究竟做错了什么?
编辑:
这应该是可编译的,但至少对我来说不是。我正在使用 gcc 版本 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)。当我尝试:
make -std=c++0x -w in /home/martin/Projects/StrongTypedEnums-build-desktop
我明白了
:-1: error: invalid option -- '='.
我正在通过 IDE 做所有事情,并且对传递编译器参数一无所知。
enum class Color
{
gray = 1,
red = 2
};
int main(int argc, char *argv[])
{
Color color = Color::red; // 'Color' is not a class or a namespace
return 0;
}