gcc のバージョンを上げたら expected primary-expression before ‘.’ token になった件

test.C: メンバ関数 ‘void test:checkI()’ 内:
test.C:157:32: エラー: expected primary-expression before ‘.’ token
   if(testEnum.eNo1 == 1){

なぜか enum 定義がフルスコープだとエラーを返すようになった

enum testEnum{
 eNo1 = 1,
 eNo2 = 2,
 eNo4 = 4,
 eNo5 = 5,
 eNo6 = 6,
};

c++ - Correct way to set static enum vars in cpp file - Stack Overflow
フルスコープにする必要がないって話なんだけど

どうやら内部的に、enum class testEnum になってるらしい。
というわけで
testEnum.eNo1 を testEnum::eNo1 にするとちゃんと動いた ・ω・
(これでいいんだろうか)

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です