我在代码中使用了 boost::scoped_ptr
,我想将其替换为 std::unique_ptr
。我想知道迁移到 std::unique_ptr
是否有任何缺点。 Boost 可跨平台和编译器移植。但我不确定是否所有编译器(如 MSVC)都支持 C++11。我知道 GCC 和 Clang 很好地支持 C++11。
我已经阅读了 SO 问题“intrusive_ptr
in C++11 ”其简短的回答是“否”。因此,如果有人有使用这两者的经验,请分享您的意见和想法
最佳答案
Mgetz慷慨地提供了所有最近的 VS 实现提供的信息 unique_ptr
.
我建议您更换 boost::scoped_ptr<T>
与 const std::unique_ptr<T>
. const
的原因是这个最接近模型boost::scoped_ptr<T>
这不是“可移动的”。不过我相信boost::scoped_ptr<T>
确实支持交换。所以如果你使用它,编译器会在你尝试交换 const std::unique_ptr<T>
的任何地方提示然后您可以将这些实例标记为非 const
.
关于c++ - 将 boost::scoped_ptr 更改为 std::unique_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143413/