пустой?
Т. е. я могу просто сделать свап всех его данных с тем, кому делаю = и оставить так, деструктор дальше разберется сам
не обязан. Более того Trivialy copyable объекты вообще в move конструкторе по-умолчанию просто копируют
Согласна стандарту языка объект после перемещения должен находиться в валидном состоянии но с неопределёнными значениями членов данных. То есть его данные должны находиться в таком состоянии чтобы он мог как минимум корректно быть уничтоженным с помощью деструктора. Но на самом деле после перемещение данных из объекта в последующем этот объект можно заполнить новыми данными каким-то образом и далее с ним работать до окончания времени его жизни после которого будет вызван деструктор напоминаю и инструктор должен отработать
ЕМНИП возможность перезаполнить тоже именно требование, а не "так получилось", иначе банальный swap через три move-assign не работает
То что объект находится в валидным состояние как бы подразумевает что с ним можно делать всё что угодно в том числе перезаполнить и повторно использовать
Обсуждают сегодня