5;
auto xx = std::make_unique<int>(std::move(x));
И без move?
То есть понятно, если с мув, то параметр будет связан с рвалью и форварднётся оно как рвалью, однако какая практическая польза? Ибо в х как было, так и остаётся значение. Если с move, то х всё равно копируется в параметр, только лежит там уже как рвалью ссылка, верно? А потом параметр тогда просто перемещается в конструктор int-а? А если без move, тогда должна получиться лвалью ссылка на этот икс, и копия будет делаться уже тогда, когда её надо будет предоставить конструктору? В чём практическая разница, есть ли какой-то выигрыш у одного из вариантов
Осталось понять, что значит "переместить int". move, r-value и прочее не имеют отношения к перемещению внутренних данных объекта. Они просто позволяют вызвать конструктор Type(Type&&) вместо Type(const Type&) при наличии такового.
Для инта ни в чем. Ты спрашиваешь, зачем нужен мув или что?
Обсуждают сегодня