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

时间:2014-02-18 11:38:29

标签: 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”,但到目前为止正如我所看到的那样,我可以看到一个普通的指针。)

1 个答案:

答案 0 :(得分:10)

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