【发布时间】:2018-02-02 11:49:40
【问题描述】:
有时我们有一个工厂,它产生一个 std::unique_ptr 的向量,稍后我们想在类/线程/你命名它之间共享这些指针。所以最好改用 std::shared_ptr 。当然有一种方法可以将 std::uniqe_ptr 转换为 std::shared_ptr
std::shared_ptr<int> sharedV;
std::unique_ptr<int> uniqueV(new int(2));
sharedV = std::move(uniqueV);
那么有什么直接的方法可以用 std 集合做这样的事情吗?
【问题讨论】:
-
所以最好改用 std::shared_ptr 这些东西需要参与所有权吗?如果没有,您可以通过引用传递向量。
-
@NathanOliver 对于我们希望共享这些指针所有权的某些特定情况是理想的。不要过分热心:)