Почему первая строка не компилируется во время компиляции второй строки?C++ - Конструктор типа класса возвращает значение lvalue?
float& t = float(10); // initial value of reference to non - const must be an lvalue
string& w = string("gg");
Означает ли это, что конструктор строк возвращает значение lvalue?
g ++ 4.8.2 дает «ошибку: недействительная инициализация неконстантной ссылки типа ...» для * каждого * этих строк. –
Это хороший вопрос, который заставляет меня задаться вопросом, почему здесь всегда кто-то голосует/голосует здесь (и даже не оставляя комментариев, объясняя почему). Некоторые пользователи здесь должны быть по праву лишены этой привилегии. –
Я предполагаю, что вторая строка компилируется, потому что вы используете MSVC, и вы не компилировались с/W4. Если вы скомпилировали/W4, вы должны были увидеть что-то вроде «предупреждения C4239: нестандартное расширение». – cpplearner