К моему удивлению, это компилируется:
const char* c_str()
{
static const char nullchar = '\0';
return nullchar;
}
и это внесло ошибку в мой код. К счастью, я поймал его.
Является ли это преднамеренным C++ или ошибкой компилятора? Есть ли причина, по которой тип данных активно игнорируется?
Это работало в Visual C++ 2010 и GCC , но я не понимаю, почему это должно работать, учитывая очевидное несоответствие типов данных. (static
тоже не нужен.)