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_ptrtypes的一部分(分配器是STL容器types的一部分)。

unique_ptr独占拥有一个对象。它是不可复制的,但支持所有权的转移 。 它被引入作为现在被弃用的auto_ptr替代品。

scoped_ptr 既不可复制也不可移动 。 当你想要确保指针在超出范围时被删除,这是首选。