VisualStudio2017以降のC++でE0144のエラーが出たときの対策
古いソースコードをVisual Studioに組み込むとE0144の大量のエラーが出る事があります。
char *p[]={"Test","Test"};
こういうコードですね。
“const char *” を “char *” に入れると書き換えられるよね、ダメだよって言ってます。
本来はここはconst char *になるべき所なのですが、4Byte領域のアロケートを面倒だからとこう書いている場合があります。
その場合は別の値をコピーする所でエラーが出たりしますよね。
「おい、もう既に出来上がってて動いてた実績のあるコードなのに、なんで変えてるんだ!」
それでバグが出ると、
『変えなくてもいい所を時間をかけて勝手に変更してバグを作り、問題を起こしたトンデモ野郎!』
等というレッテルを張られる事になったりします。(恐ろしいですね)
そういう時は、非推奨のC++構文は認めないモードがONになっているかを確認します。
これがNoになっていると、const char*をchar *にキャスト無しで設定したりしてもエラーにはなりません。一度確認してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません