boost :: scoped_ptr <T>和std :: unique_ptr <T>之间的区别
boost::scoped_ptr<T>
和std::unique_ptr<T>
之间的唯一区别是std::unique_ptr<T>
具有移动语义,而boost::scoped_ptr<T>
只是一个get / reset智能指针?
不,但这是最重要的区别。
另一个主要区别是unique_ptr
可以有一个析构函数对象,与shared_ptr
可以类似。 与shared_ptr
不同,析构函数types是unique_ptr
types的一部分(分配器是STL容器types的一部分)。
unique_ptr
独占拥有一个对象。它是不可复制的,但支持所有权的转移 。 它被引入作为现在被弃用的auto_ptr
替代品。
scoped_ptr
既不可复制也不可移动 。 当你想要确保指针在超出范围时被删除,这是首选。