假设我std::auto_ptr
在我的代码中使用。*
退货有什么危险std::auto_ptr
吗?
即它会导致内存泄漏、未定义的行为等吗?还是可以安全使用std::auto_ptr
?
*我不是在问是否有更好的替代品(例如shared_ptr
);我特意询问回归auto_ptr
本身的陷阱。
一般来说,它是安全的,可以生成更健壮的代码。它不应该导致内存泄漏,因为指向的内存是自动删除的。
但是在某些情况下您必须小心:
auto_ptr
不相等!_auto_ptr
将释放第一个指针指向的对象请看这里:
auto_ptr 模板类旨在帮助以半自动方式管理内存,并在异常事件等意外事件导致正常清理代码被跳过时防止内存泄漏。
(引自(2))