C++でのwith ‘-std=c++17’ or ‘-std=gnu++17’エラー
C++でのwith ‘-std=c++17’ or ‘-std=gnu++17’エラー if ( _param_hb_AAA.get() > HB_PARA_MINUS_CHK){ ※追加 ここは既存の行 speed <= _param_hb_AAA.get()); ※既存 } ※追加 としたところerror: init-statement in selection statements only available with ‘-std=c++17’ or ‘-std=gnu++17’がでました。 AAAは伏せ字です 既存処理は問題なくコンパイルできましたが if文を追加したところ上記のエラーが出ました どうぞよろしくおねがいします
C言語関連・25閲覧・25
ベストアンサー
if文やswtch文の条件内で変数の初期化が行われているエラーです。 C++17からは、以下のような記述が可能になりました。 switch (int a = getchar()) { case 'A': putchar(a); } それ以前のC++ではエラーとなりますが、どうもこれに引っかかっています。 もし「HB_PARA_MINUS_CHK」がマクロなのなら このマクロの結果をif文の前で変数で受けて その変数と比較するようにしてください。
質問者からのお礼コメント
コンパイラーの癖でしょうか? ありがとうございます。 既存行は確かに・・なってますね。
お礼日時:6/30 13:08