這是我的測試案例(注意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 :: string的情況下,被分配比另一個字符串或一個char *以外的東西。我曾假定編譯器會拒絕不兼容的類型,但它允許它。
如何告訴gcc(版本4.4.3)拒絕這種愚蠢? ...還是有其他方式強制拒絕這些不兼容的類型被分配給std :: string嗎?
@ 0A0D:這裏沒有什麼區別。 –
不好意思,但是**怎麼樣不給字符串**分配一個整數?這不是你可以做的最壞的事情,也不能阻止在C++中完成。 –
@Christian Rau - 我將這個添加到測試用例中,因爲我在我的主項目中更改了一個變量的類型,並且在代碼編譯時感到非常驚訝(是的,使用編譯器爲變量的使用添加書籤) – user1016736