指针随时间的改进/变化

improvements/changes in pointers with time?

本文关键字:变化 时间 指针      更新时间:2023-10-16

也许,指针一直在修改auto_ptr到unique_ptr和shared_ptr 的常规指针

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

我不认为常规指针是死的,但最近我遇到了auto-ptr,然后我对添加到C++ox中的shared_ptr和unique_ptr有了一些了解。我不能使用它们(shared_ptr和unique_ptr),因为我正在使用visual C++2008。

auto_ptr是否完全被unique_ptr和shared_ptr接管?

请提供一些见解。

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

Qt提供了QSharedDataPointer,它有助于提供写时复制功能。它具有侵入性,因为它只接受从QSharedData派生的类型,而不接受任何任意数据。我自己的实用程序对象的个人库包括一个deep_ptr类型,它带有一个复制构造函数,可以复制其存储的数据,而不仅仅是对指针进行混叠。它被专门用作实现Pimpls的一种方式,这样我就不必为实现Big 3而烦恼,但仍然可以开箱即用地获得值语义。

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