Это местное rvalue?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Это местное rvalue?

Сообщение Anonymous »

Herb Sutter в своем блоге упомянул, что начиная с C ++ 23 категория ошибок была исключена, а именно возврат ссылки на локацию с функции. Он дает ссылку на Godbolt: < /p>
int& bad_bunny() {
int local = 42;
return local;
}
< /code>
Компилятор GCC дает ошибку: < /p>

Ошибка: не может привязать неконфессиональную ссылку на LVALUE типа 'int &' rvalue of type 'int' < /p>
< /blockquote>
это говорит о том, что это так, что устроит? Это не rvalue, просто локальный. < /P>
clang и msvc имеют ошибки: < /p>
clang: < /p>

Ошибка: неконфессиональная ссылка на тип 'int' не может быть связан с временным типом /> msvc: < /p>

Предупреждение C4172: возвращающийся адрес локальной переменной или временный: локальный < /p>
< /blockquote>
Интересно, что MSVC дает предупреждение, но все же компилирует его. C ++ 23 не должен это скомпилировать? MSVC не соответствует стандарту C ++ 23?

Подробнее здесь: https://stackoverflow.com/questions/795 ... -an-rvalue
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»