【发布时间】:2013-03-06 19:03:54
【问题描述】:
std::unique_ptr 的推荐用途是什么?
我发现:
我已经知道了:
-
std::unique_ptr是用 C++11 开发的,作为std::auto_ptr的替代品 -
std::unique_ptr没有引用计数并且“拥有”它指向的对象 - 没有
std::unique_ptr的复制/分配 - 当我需要一个唯一指针时,
std::unique_ptr是转到结构体
我想知道的:
- 使用
std::unique_ptr比某些东西更可取(除了唯一性)
别的?在这种情况下我能得到什么? - 如果是这样,在什么情况下以及何时?
- 考虑到移动语义的需要,这会使
std::unique_ptr不那么受欢迎
总体? - 如果
std::shared_ptr足以满足几乎所有的动态内存管理 情况,为什么我可以使用std::unique_ptr问题(再次,其他
比唯一性)?
【问题讨论】:
-
因为类型被称为
unique_ptr,我觉得奇怪的是你正在寻找其他用途而不是唯一...... -
@Mushy:您需要回答的主要问题是所有权问题。在选择智能指针时没有其他重要的事情,这在我链接到的问题中得到了很好的回答。你链接到的问题让我投了反对票(从早些时候开始),因为它根本没有显示任何确定性,并且对“数据”提出了错误的问题。
-
stackoverflow.com/questions/8706192/… 在整体含义和意图上可能最接近我的问题。在根据提供的最接近的建议研究或发布我的问题时,我没有看到 stackoverflow.com/questions/8706192/…。
标签: c++ c++11 smart-pointers unique-ptr