Sun Studio 12 Update 1: C++ ユーザーズガイド

4.6 enum 名のスコープ修飾子としての使用

enum 宣言ではスコープを指定できないため、enum 名をスコープ修飾子として使用することはできません。たとえば、次のコードは不正です。


enum E {e1, e2, e3};
int i = E::e1; // invalid: E is not a scope name

この不正なコードをコンパイルするには、-features=extensions オプションを使用します。enum 型の名前だった場合に、-features=extensions オプションはコンパイラにスコープ修飾子を無視するよう命令します。

このコードを有効なものにするには、不正な修飾子 E:: を取り除きます。


注 –

このオプションを使用すると、プログラムのタイプミスが検出されずにコンパイルされる可能性が高くなります。