C++0xで導入されるenum classは、C++03までのenumよりも型付けが 強くなっているのでint型への暗黙の型変換はできなくなっています。 enum class Color { Blue = 0, Yello, Red }; int color = Color::Red; // エラー!Colorからintへ変換できません 明示的な型変換ならいけるかな、と思ったのでenum classを実装しているGCC 4.4で試してみました。 int color = static_cast<int>(Color::Red); // OK : colorは2 明示的な型変換はできるみたいです。 intからenum classへの変換も、明示的な型変換をすればいけます。 void foo(Color color) {} foo(2); // エラー!第1引数をintからColorへ変換できま