mos*_*ear 55 c++ unique-ptr scoped-ptr
唯一的区别是移动语义boost::scoped_ptr<T>
和移动语义std::unique_ptr<T>
的事实,std::unique_ptr<T>
而boost::scoped_ptr<T>
只是一个获取/重置智能指针?
Nic*_*las 44
不,但这是最重要的区别.
另一个主要区别是unique_ptr
可以有一个析构函数对象,类似于如何shared_ptr
.与shared_ptr
析构函数类型不同,它是类型的一部分unique_ptr
(分配器是STL容器类型的一部分).
Alo*_*ave 28
unique_ptr
拥有一个对象.它是不可复制的,但支持所有权转让.它被引入作为现已弃用的替代品auto_ptr
.
scoped_ptr
是没有可复制也不可移动.当你想要确保指针在超出范围时被删除时,它是首选.