Это мой тестовый пример (обратите внимание на комментарий WTF):
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 назначается что-то отличное от другой строки или символа *Я предполагал, что компилятор отклонит несовместимый тип, но он разрешает его.
Как я могу сказать gcc (версия 4.4.3) отклонить эту глупость?... или есть какой-то другой способ принудительного отклонения этих несовместимых типов, назначаемых std :: string?