【发布时间】:2016-03-15 13:58:55
【问题描述】:
在 c++11 项目中,我想尽可能多地使用 stl 原语而不是 boost 原语。虽然我仍然需要一些 boost 库——例如文件系统。它虽然使用 boost::shared_ptr。
我的问题是 - 有没有办法让 boost 切换到使用 std::shared_ptr 以及如何?
【问题讨论】:
-
为什么要改变 boost 的内部结构?在你的代码中使用
std::shared_ptr,让 boost 使用它需要的任何东西。 -
是内部的吗?没有任何库的接口期望或返回 shared_ptr?
-
@gsf:函数仅在转移对象所有权时才采用/返回
shared_ptr。很少有 Boost 库实际上需要声明用户传入的东西的所有权。所以大多数参数要么是值类型、引用,要么是裸(非拥有)指针。确实,我想不出在界面中使用shared_ptr的Boost 函数。 -
@NicolBolas 这很有道理,我也不能,但我之前没有广泛使用过 boost 文件系统。