Я слышал, как Скотт Майерс сказал: "std::move()
ничего не двигает"... но я не понял, что это значит.
Итак, чтобы указать мой вопрос, рассмотрите следующее:
class Box { /* things... */ };
Box box1 = some_value;
Box box2 = box1; // value of box1 is copied to box2 ... ok
Как насчет:
Box box3 = std::move(box1);
Я понимаю правила lvalue и rvalue, но то, что я не понимаю, это то, что на самом деле происходит в памяти? Это просто копирование значения по-разному, разделение адреса или что? В частности: что делает перемещение быстрее, чем копирование?
Я просто чувствую, что понимание этого сделает все ясным для меня. Спасибо заранее!
EDIT: Обратите внимание, что я не спрашиваю о реализации std::move()
или каких-либо синтаксических материалах.