225得票6回答
为什么在标准容器中使用std::auto_ptr<>是错误的?

为什么在标准容器中使用std::auto_ptr&lt;&gt;是错误的?

215得票4回答
将std::auto_ptr转换为std::unique_ptr

新标准的推出(某些编译器中已有部分功能),新类型std::unique_ptr被认为是替代std::auto_ptr的一种选择。 它们的使用是否完全重叠(因此我可以在代码中进行全局搜索/替换(尽管我不会这样做,但如果我这样做了呢)),或者我应该注意一些从文档中无法看出的差异? 另外,如果它...

105得票5回答
为什么auto_ptr被弃用?

我听说C++11中auto_ptr已被弃用,这是什么原因? 另外,我想知道auto_ptr和shared_ptr的区别。

87得票4回答
auto_ptr是否已被弃用?

auto_ptr 在即将到来的 C++ 标准中是否会被弃用? 在所有权转移方面,是应该使用 unique_ptr 而非 shared_ptr 吗? 如果 unique_ptr 不在标准中,那么我需要使用 shared_ptr 吗?

46得票3回答
那么unique_ptr在STL容器中能安全使用吗?

我对unique_ptr和右值移动语义感到困惑。 假设我们有两个集合:std::vector&lt;std::auto_ptr&lt;int&gt;&gt; autoCollection; std::vector&lt;std::unique_ptr&lt;int&gt;&gt; uniqu...

26得票1回答
std::unique_ptr vs std::shared_ptr vs std::weak_ptr vs std::auto_ptr vs 原始指针 (注意:std::auto_ptr已被弃用,不建议在新代码中使用)

相较于使用原始指针所采用的一些高级技术(但不仅限于此),每种智能指针的等效用法是什么? 我的理解很少,但从我所了解到的: 原始指针:只有在您确实非常非常非常非常地知道自己在做什么并已经在接口后小心隐藏了用法时才使用。 std::auto_ptr:已过时,不要使用。 std::unique...

21得票4回答
为什么auto_ptr<T>没有定义operator!()运算符?

这个标题基本概括了我的问题。为什么不能使用以下方法来检查空指针?auto_ptr&lt;char&gt; p( some_expression ); // ... if ( !p ) // error 必须执行以下操作:if ( !p.get() ) // OK 为什么auto_ptr&lt...

19得票1回答
指向不完整类型的指针删除和智能指针

当尝试使用一个被前向声明声明的类型来使用auto_ptr时,像这样:class A; ... std::auto_ptr&lt;A&gt; a; A的析构函数没有被调用(显然是因为auto_ptr内部删除了底层指针,而不完全类型的析构函数无法被调用)。 然而,当使用std::shared_p...

19得票5回答
像std::vector这样的容器中使用智能指针?

我正在学习智能指针(std::auto_ptr)并在这里以及这里读到,智能指针(std::auto_ptr)不应该放在容器中(即std::vector),因为大多数编译器不会报错,这看起来可能是正确的。没有规则规定智能指针不会在内部被复制(例如由vector类)并转移所有权,然后指针将变为NU...

18得票3回答
何时使用std :: auto_ptr而不是boost :: shared_ptr?

我们已经几乎在所有代码中都使用boost::shared_ptr,但是我们仍然有一些孤立的情况,在其中我们使用std::auto_ptr,包括单例类:template &lt; typename TYPE &gt; class SharedSingleton { public: st...