【发布时间】:2012-06-11 12:46:31
【问题描述】:
我读到std::auto_ptr 已过时,因此您必须改用std::tr1::shared_ptr。我读到的区别是std::tr1::shared_ptr 有引用计数,而std::auto_ptr 没有,因此复制或分配会使资源更改其所有者,而源将所有权授予目的地。这是唯一的区别吗?
【问题讨论】:
标签: c++ shared-ptr std auto-ptr
我读到std::auto_ptr 已过时,因此您必须改用std::tr1::shared_ptr。我读到的区别是std::tr1::shared_ptr 有引用计数,而std::auto_ptr 没有,因此复制或分配会使资源更改其所有者,而源将所有权授予目的地。这是唯一的区别吗?
【问题讨论】:
标签: c++ shared-ptr std auto-ptr
与auto_ptr 的单一所有权语义最接近的智能指针是std::unique_ptr。如果可用,应优先使用 std::shared_ptr。见here。
【讨论】: