デフォルトの 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;
}