Существует конструктор копирования для shared_ptr
, иначе какой смысл в shared_ptr
?
Левая ссылка от OP говорит, что если определен только оператор присваивания перемещения, то конструктор копирования будет неявно удален, заставит shared_ptr
работать неправильно . Это можно увидеть и в Boost changeset , где операторы копирования явно добавлены для исправления ошибки.
Операторы присваивания копии shared_ptr
можно найти в §20.7.2.2.3 [util.smartptr.shared.assign] /1–3.
.
shared_ptr& operator=(const shared_ptr& r) noexcept;
template<class Y> shared_ptr& operator=(const shared_ptr<Y>& r) noexcept;
template<class Y> shared_ptr& operator=(auto_ptr<Y>&& r);