|  | 
|      | 
|  | 
| Composition or inheritanceBoost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 23. Boost.Move
  
   | |||||||||
| ![[Important]](/img/important.png) | 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 ::
| реклама |