Move семантика

Семантика перемещения появилась с выходом стандарта C++11, чтобы дополнить RVO в C++98; Её также можно считать оптимизацией на подобии RVO, которую определяет пользователь (создавая конструкторы перемещения и перемещающий оператор копирования).

Хотя изначально она была создана для оптимизации, её так же можно использовать для некоторых ограничений. Например у std::unique_ptr нет конструктора копирования, зато есть перемещающий конструктор, благодаря чему обеспечивается единоличное владение (подробнее о std::unique_ptr здесь).

Читать далее