4.5 不完全な enum 型の使用
-features=extensions オプションを使用した場合は、不完全な enum 型は前方宣言と見なされます。たとえば、-features=extensions オプションを使用すると、次の不正なコードがコンパイルされます。
typedef enum E F; // invalid, E is incomplete
前述したように、enum 型を使用する前に、その定義を記述しておくことができます。
注 -
C++11 では、追加構文による enum 型の前方宣言を実行できます。