C++ 11中boost :: scoped_ptr的替代方案

psc*_*scs 10 c++ boost

我们刚刚将编译器升级到VC++ 2013,它支持C++ 11.以前我们一直在使用Boost的shared_ptr和scoped_ptr类,但由于这是我们一直在使用的Boost,我们希望删除它依赖.

据我所知,std :: shared_ptrs是boost :: shared_ptrs的直接替代品,因此(希望)很容易.

但是,什么是Boost scoped_ptrs(如果有的话)的最佳替代品?它会是unique_ptr吗?

(老实说,即使我写了代码,大约10年前,我已经忘记了使用scoped_ptrs的目的是什么......也许我只是在玩"Boost",但就我而言在我检查的情况下,看到一个普通的指针可能会做.

jal*_*alf 10

是的,scoped_ptr可以而且应该被替换unique_ptr.它们代表相同的想法(独特的所有权),但unique_ptr它做得更好,并允许通过移动语义转移所有权.(scoped_ptr不是因为在C++ 98中不可能)

  • 值得注意的是,`const std :: unique_ptr <T>`是`scoped_ptr`的更精确的替代,因为`const`不允许从`unique_ptr`移动. (2认同)