Что делает перемещение объектов быстрее копирования? ⇐ C++
-
Гость
Что делает перемещение объектов быстрее копирования?
Я слышал, как Скотт Мейерс сказал: «std::move() ничего не перемещает»… но я не понял, что это значит.
Чтобы уточнить мой вопрос, рассмотрим следующее:
class Box { /* вещи... */ }; Коробка box1 = some_value; Коробка коробка2 = коробка1; // значение box1 копируется в box2 ... ок Что насчет:
Box box3 = std::move(box1); Я понимаю правила lvalue и rvalue, но чего я не понимаю, так это того, что на самом деле происходит в памяти? Это просто копирование значения каким-то другим способом, обмен адресом или что-то еще? Точнее: что делает перемещение быстрее копирования?
Я просто чувствую, что понимание этого прояснит мне все. Заранее спасибо!
РЕДАКТИРОВАТЬ: Обратите внимание, что я не спрашиваю о реализации std::move() или каких-либо синтаксических вещах.
Я слышал, как Скотт Мейерс сказал: «std::move() ничего не перемещает»… но я не понял, что это значит.
Чтобы уточнить мой вопрос, рассмотрим следующее:
class Box { /* вещи... */ }; Коробка box1 = some_value; Коробка коробка2 = коробка1; // значение box1 копируется в box2 ... ок Что насчет:
Box box3 = std::move(box1); Я понимаю правила lvalue и rvalue, но чего я не понимаю, так это того, что на самом деле происходит в памяти? Это просто копирование значения каким-то другим способом, обмен адресом или что-то еще? Точнее: что делает перемещение быстрее копирования?
Я просто чувствую, что понимание этого прояснит мне все. Заранее спасибо!
РЕДАКТИРОВАТЬ: Обратите внимание, что я не спрашиваю о реализации std::move() или каких-либо синтаксических вещах.
Мобильная версия