これは私のテストケース(WTFのコメントに注意してください)です。文字列に整数値が割り当てられていることをgccに警告する方法を教えてください。
TEST(string_assignment)
{
std::string str;
std::string cheese="Cheese";
str=cheese;
CHECK_EQUAL(cheese, str);
long lval=0;
str=lval; //WTF - why does the compiler allow this ?
str="";
str.append(cheese);
CHECK_EQUAL(cheese, str);
}
私がのstd ::文字列のインスタンスをキャッチしたいが、別の文字列またはchar *以外の何かが割り当てられています。私はコンパイラが互換性のない型を拒否すると仮定していましたが、それは許しています。
gcc(バージョン4.4.3)にこの愚かさを拒否させるにはどうすればよいですか? ...またはstd :: stringに割り当てられているこれらの互換性のない型を強制的に拒否する別の方法がありますか?
@ 0A0D:ここでも違いはありません。 –
申し訳ありませんが、**文字列に整数を割り当てない**はどうですか?これは本当にあなたができ、C++での実行を妨げていない最も悪いことではありません。 –
@Christian Rau - メインプロジェクトの変数のタイプを変更したため、テストケースに追加しました。コンパイル時に非常に驚いていました(はい、変数使用をブックマークするコンパイラを使用しています) – user1016736