私はこのコードを使用しました:
enum E {
E1, E2, E3, MaxNum
};
const char * ENames[ MaxNum ] = {
"E1", "E2", "E3"
};
問題はありませんでした。今、私は "modern" を使いたいと思っていますenum class
。コードは次のようになります。
enum class E {
E1, E2, E3, MaxNum
};
const char * ENames[ E::MaxNum ] = {
"E1", "E2", "E3"
};
エラーが発生しました
エラー: 配列 'ENames' のサイズに非整数型 'E' があります</p>
エラー: 'const char* [1]' の初期化子が多すぎます</p>
Q:enum class
通常の enum が整数であるのに、なぜ c++11 で非整数になるのですか?
問題の決定とは?の列挙の1つであるサイズの配列を宣言するにはどうすればよいenum class
ですか?
ここ - http://ideone.com/SNHTYe - は簡単な例です。
ありがとうございました。