C++ 11 以前だと 'enum' is not a class or namespace error ― 2020年10月13日 12時37分23秒
clang だともう少し分かりやすいエラーを表示してくれる。
こちらが clang でのエラー。
% cat enum.cpp
enum Color
{
green,
yellow,
red,
};
Color c = Color::green;
C++11 に変えるとコンパイルできる。
% c++ -std=c++03 -c enum.cpp -o a.out
enum.cpp:8:11: warning: use of enumeration in a nested name specifier is
a C++11 extension [-Wc++11-extensions]
Color c = Color::green;
% c++ -std=c++11 -c enum.cpp -o a.out
clang だともう少し分かりやすいエラーを表示してくれる。
代入の右辺値から Color を落してもコンパイルする。
% cat enum.cpp
enum Color
{
green,
yellow,
red,
};
Color c = green;
% c++ -std=c++03 -c enum.cpp -o a.out
%
最近のコメント