【发布时间】:2018-09-28 10:24:40
【问题描述】:
我目前正在处理的项目使用不支持 C++11 的旧编译器,因此没有可用的 unique_ptr 或 shared_ptr。
我应该改用现在已弃用的 auto_ptr 还是应该完全放弃使用智能指针?
【问题讨论】:
-
如果您决定使用
std::auto_ptr,请确保您了解为什么会出现问题。一个例子:gotw.ca/gotw/042.htm -
如果系统已经在使用它,我仍然会使用 auto_ptrs。
-
看看this
-
您仍然可以使用 RAII 技术来管理内存,并遵循诸如“一个类应该拥有一个资源,或者执行某些功能”之类的良好实践。
auto_ptr会起作用,只是要格外小心并了解其局限性。在移动语义之前没有真正的方法来创建一个好的“单一所有者”智能指针,但是有很多库提供共享指针。
标签: c++ smart-pointers