指针随时间的改进/变化?

时间:2011-06-11 18:27:42

标签: c++ pointers

也许,指针一直在修改过程中 常规指向auto_ptr到unique_ptr和shared_ptr

我只是想知道已经开发的新类型的指针完全超过旧版本(或者您可能认为存在内存泄漏问题的指针版本)

我不认为常规指针已经死了但是最近我遇到了auto-ptr,然后我开始了解一下有关shared_ptr和unique_ptr添加到C ++ ox.I不能使用它们(shared_ptr和unique_ptr)虽然因为我有视觉C ++ 2008。

auto_ptr还完全由unique_ptr和shared_ptr接管吗?

请提供一些见解。

2 个答案:

答案 0 :(得分:4)

如果您不拥有它指向的对象,则原始指针仍然有用。 auto_ptr被正式弃用(是的,新代码几乎已经死了)。 VS2008虽然提供了shared_ptr作为TR1的一部分,但总有Boost。我现在认为在我的C ++生活中没有任何其他智能指针需要。

答案 1 :(得分:1)

Qt提供QSharedDataPointer,它有助于提供写时复制功能。它的侵入性,在某种意义上它只接受从QSharedData派生的类型而不是任何任意数据。我自己的实用程序对象库包含deep_ptr类型,其中包含复制构造函数,用于复制其存储的数据,而不仅仅是对指针进行别名。它专门用作实现Pimpls的一种方法,这样我就不必费心去实现Big 3了,但仍然可以获得开箱即用的价值语义。

但实际上,shared_ptrweak_ptrunique_ptr确实提供了所需的几乎所有功能。