Изменяются ли правила категорий значений C++, такие как исключение копирования, с помощью C++26 tribuly_relocatable_if_eC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Изменяются ли правила категорий значений C++, такие как исключение копирования, с помощью C++26 tribuly_relocatable_if_e

Сообщение Anonymous »

Категории значений C++11 (lvalues, xvalues и prvalues) глубоко связаны с ядром самого C++ таким образом, что невозможно рассуждать о C++ без рассуждений о семантике значений.
C++17 сгладил объектную модель, поэтому у нас есть такие вещи, как гарантированное исключение копирования, что делает более предсказуемым узнать, когда происходит создание/уничтожение/временная материализация и т. д. сцены.
В C++26 введена концепция тривиальной перемещаемости, позволяющая пропустить уничтожение некоторых перемещенных значений. Мне интересно, каковы последствия, когда я рассуждаю о выражениях C++, сосредоточив внимание на категориях значений.

Например, если у меня есть переменная (so lvalue) для тривиально перемещаемого типа и я перемещаю значение куда-то, создает ли она prvalue вместо значения x?

Становится ли это UB для использования указателя на перемещенное значение?

А как насчет временного значения? материализация? Изменятся ли какие-нибудь правила?

Подробнее здесь: https://stackoverflow.com/questions/798 ... rivially-r
Ответить

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

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

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

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

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