我们刚刚将编译器升级到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”,但到目前为止正如我所看到的那样,我可以看到一个普通的指针。)
答案 0 :(得分:10)
是的,scoped_ptr
可以而且应该替换为unique_ptr
。它们代表相同的想法(独特的所有权),但unique_ptr
做得更好,并允许通过移动语义转移所有权。 (scoped_ptr
没有,因为在C ++ 98中不可能)