c++ - 将 boost::scoped_ptr 更改为 std::unique_ptr

标签 c++ c++11 boost smart-pointers unique-ptr

我在代码中使用了 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/

相关文章:

c++ - 我对值初始化的尝试被解释为函数声明,为什么 A a(());解决这个问题?

c++ - 检测图像中矩形的最简单*正确*方法是什么?

c++ - 自动注册对象以列出存储共享指针

c++ - C++14 标准库的哪些部分可以是 constexpr,哪些部分将成为 constexpr?

c++ - 编译时增加几何距离()错误

c++ - boost ,使用 tcp 通过网络发送文件,首选方法?

c++ - 在多个线程上发布任务时 boost::asio::thread_pool 线程安全吗?

c++ - 为什么在使用 Win32 GDI 绘图时需要将句柄保存到旧位图?

c++ - 在字符串中的偶数位置提取字母?

c++ - 终止线程 c++11 在读取时被阻塞