Идея этой заметки навеяна сложностями понимания семантики перемещения (move semantics, Wikipedia), с которыми сталкиваются изучающие С++ на онлайн курсах при отсутствии поддержки. У меня была возможность показать правильный путь решения задач стороннего онлайн-курса на Stepik , где обучающиеся столкнулись со сложностями, а поддержка отсутствовала. Важность понимания различий между копированием и перемещением объектов (для стандартов C++ 11 и новее) не поддается измерению. Рассмотрим ситуацию на примере функции push_back для вектора. Copy semantics (push_back(const T& value)) означает, что ваш вектор создаёт копию объекта, когда добавляет его. Это важно помнить, потому что не все объекты легко копируются. Допустим, вы хотите добавить std::unique_ptr<int> в ваш вектор. std::unique_ptr обладает exclusive ownership, что означает, что он управляет единственным указателем на объект, и его копирование запрещено. Если вы попытаетесь добавить std::unique_ptr в вектор с copy semantics, испол
Добрый C++ для начинающих. Забегая далеко вперед. Move и copy семантика.
2 марта 20252 мар 2025
21
1 мин