列挙型への代入
列挙型:インデックス への移動
列挙型に関する式の規則は厳しくなっています。ANSI C++ に厳密に準拠して,コンパイラを -A スイッチ付きで実行した場合,コンパイラはエラーメッセージを表示してその式の規則に従います。
整数を列挙型変数に代入するとエラーになります。
enum color { red, green, blue }; int f() { color c; c = 0; return c; }
関数へのパラメータとして整数を渡す場合も同様です。flag1|flag2 式の結果は int 型になることに注意してください。
enum e { flag1 = 0x01, flag2 = 0x02 }; void p(e); void f() { p(flag1|flag2); }
上記の例をコンパイルするには,flag1|flag2 式は列挙型の (e)(flag1|flag2) にキャストされなければなりません。