![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Composition or inheritanceBoost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 23. Boost.Move
|
![]() | Important |
---|---|
Из-за ограничений в коде эмуляции необходимо отлить |
Каждый подобъект теперь будет рассматриваться индивидуально, вызывая движение, чтобы привязать к движению подобъекта конструкторов и операторов назначения перемещения. У участника
закодированы операции перемещения (как и в нашем предыдущем примере clone_ptr
), что позволит полностью избежать гораздо более дорогих операций копирования:
Derived d; Derived d2(boost::move(d)); d2 = boost::move(d);
Обратите внимание, что аргумент x рассматривается как ссылка на значение l. Вот почему необходимо сказать move(x)
вместо просто x при переходе к базовому классу. Это ключевая функция безопасности семантики движения, предназначенная для предотвращения случайного перемещения дважды из некоторой названной переменной. Все движения от lvalues происходят явно.
Статья Composition or inheritance раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 23. Boost.Move может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Chapter 23. Boost.Move ::
реклама |