izh*_*hak 15 c++ stl smart-pointers auto-ptr
从他的STL书中读到Jossutis对auto_ptr的解释之后,我得到了一个强烈的印象,即我会尝试使用它的任何任务100%失败,因为很多auto_ptr的陷阱之一.
我的问题是:有没有任何真正的生活任务,其中auto_ptr真的很有用,并且适合那里吗?
ice*_*ime 14
显然,auto_ptr失败了unique_ptr.
现在,在"严格的C++ 03无提升"世界中,我auto_ptr经常使用,最值得注意的是:
std::auto_ptr在返回类型中使用explicits 必须删除该对象的事实release()仅在std::map<>::insert返回插入成功时const std::auto_ptr,以明确无论如何消息都将被销毁.我会说它可以使用,但它不是最好的选择.
首先,这是一年或更短的时间,auto_ptr并正式弃用.其次,有一个更好的选择:unique_ptr.斯特劳斯博士曾经说过有关unique_ptr:
"应该是什么auto_ptr"(但我们无法在C++ 98中编写)
所以,除非你没有选择,否则auto_ptr不是一个好的选择.主要是因为现在大多数C++编译器都实现move semantics并提供unique_ptr.