Почему C++ позволяет мне назначать const char константе char *?​!

К моему удивлению, это компилируется:

const char* c_str()
{
    static const char nullchar = '\0';
    return nullchar;
}

и это внесло ошибку в мой код. К счастью, я поймал его.

Является ли это преднамеренным C++ или ошибкой компилятора? Есть ли причина, по которой тип данных активно игнорируется?
Это работало в Visual C++ 2010 и GCC , но я не понимаю, почему это должно работать, учитывая очевидное несоответствие типов данных. (staticтоже не нужен.)

70
задан Thomas Eding 26 December 2012 в 00:41
поделиться