在阅读 Jossutis 从他的 STL 书中对 auto_ptr 的解释后,我有一个强烈的印象,即无论我尝试在什么任务中使用它,我都会 100% 失败,因为 auto_ptr 的许多陷阱之一。
我的问题是:在现实生活中是否有 auto_ptr 真正有用并且非常适合的任务?
最佳答案
很明显,auto_ptr
输给 unique_ptr
.
现在,在“没有增强的严格 C++03”世界中,我使用 auto_ptr
很多时候,最值得注意的是:
- 对于返回给定类型的动态分配实例的“工厂成员函数”:我喜欢使用
std::auto_ptr
在返回类型中明确指出对象必须被删除 - 在尝试将对象插入容器之前分配对象的函数中:例如为了
release()
仅当std::map<>::insert
返回插入成功 - 在从消息队列中弹出元素的线程过程中,我喜欢将弹出的元素存储在
const std::auto_ptr
中。明确说明消息将无论如何都会被销毁。
关于c++ - 有什么理由使用 auto_ptr 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4554162/