toge's diary

コンピュータ関連の趣味をつらつらと。

[C++] enum型って便利

id:tanakh:20050504を見ていて思いつく。
enum型ってクラス内での定数定義にしか使ってなかったなあ。
こんな風に使えるんだね。

enum Mode {MODE_NORMAL, MODE_SLOW, MODE_FAST};

int main() {
  Mode mode;

  mode = MODE_NORMAL; // OK
  int tmp = mode;     // OK(intへの変換は出来る)
  mode = (Mode)0;     // OK(Modeへ型変換すればOK)
  mode = 0;           // NG

  return 0;
} 

ちゃんとNGの場合では以下のようにエラーになります。

/home/toge/src/enum.cpp:9: error: invalid conversion from 'int' to 'Mode' 

昔使った時には普通にintを代入出来たように思うけど。
おお、便利だ。使おう使おう。