ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: C++ ユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
4.9 静的名前空間スコープ関数のクラスフレンドとしての宣言
4.10 事前定義済み __func__ シンボルの関数名としての使用
enum 宣言ではスコープを指定できないため、enum 名をスコープ修飾子として使用することはできません。たとえば、次のコードは不正です。
enum E {e1, e2, e3}; int i = E::e1; // invalid: E is not a scope name
この不正なコードをコンパイルするには、-features=extensions オプションを使用します。enum 型の名前の場合に、-features=extensions オプションはコンパイラにスコープ修飾子を無視するよう命令します。
このコードを有効なものにするには、不正な修飾子 E:: を取り除きます。
注 - このオプションを使用すると、プログラムのタイプミスが検出されずにコンパイルされる可能性が高くなります。