c++ - 有什么理由使用 auto_ptr 吗?

标签 c++ stl smart-pointers auto-ptr

在阅读 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/

相关文章:

c++ - Quicksort 需要帮助来完成这个

c++ - 我如何获得指向已推导的模板函数的指针?

com - 检测 Ref 计数 COM 对象上的内存泄漏(Addref without Release)

c++ - 有没有办法制作一个指向 std::ifstream 或 std::cin 的智能指针?

c++ - 企业在 Linux 上使用哪些 C/C++ 编译器?

c++ - 函数调用参数

c++ - 在C++中如何将shared_ptr变量push_back到shared_ptrs vector ?

c++ - STL 数据结构的输出参数与堆栈返回值的效率

c++ - 需要实际操作的示例问题

c++ - 使用智能指针时递归函数中的段错误