c++ - 为什么 auto_ptr 专门用于 void?

标签 c++ c++11 smart-pointers void template-specialization

我已经决定从原始指针转向智能指针,所以我可以从阅读 http://en.cppreference.com/w/cpp/memory/auto_ptr 开始.

我看到它们专门用于 void

这是为什么?它在任何情况下都有用吗?

最佳答案

这是在 LWG 541 中完成的.这个问题有完整的理由。但简而言之,这样做是为了与当时的 std::tr1::shared_ptr 兼容(后来标准化为 std::shared_ptr)。

如果您正在研究从原始指针到智能指针的转变,我强烈建议您使用 unique_ptr 而不是 auto_ptrauto_ptr 已弃用,这是有充分理由的。 unique_ptrauto_ptr 的推荐替代品。

Here is a link解释弃用 auto_ptr 并将其替换为 unique_ptr 的理由。

关于c++ - 为什么 auto_ptr 专门用于 void?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674895/

相关文章:

c++ - Cmake target_link_libraries 没有链接我的库

c++ - 为什么类型推导在(非指针)函数类型上失败

c++ - 结构是非文字类型

c++ - 如何开始编写智能指针?

c++ - 联赛赛程算法讲解

c++ - 按引用移动字符串?

c++ - const WCHAR * myVar 与 const char * myVar

c++ - 使用 Boost Python & std::shared_ptr

c++ - 当没有更多引用时如何从缓存中删除智能指针?

c++ - 可以优化智能指针吗?