从本地原始指针初始化std :: unique_ptr是否安全?

时间:2018-01-02 07:19:40

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

我知道使用std::shared_ptr这样做是不明智的。但是std::unique_ptr呢?例如。 :

class A {
 public:
  void do_something() { };
};

std::vector<std::unique_ptr<A> > uq_ptrs_;
auto p = new A();
uq_ptrs_.push_back(std::unique_ptr<A>(p));
p->do_something();

1 个答案:

答案 0 :(得分:2)

只要您在创建delete(或std::unique_ptr!)对象后手动std::shared_ptr对象,就可以了。

在您要求p(或std::unique_ptr)取得其所有权后,您还应该避免取消引用指针std::shared_ptr。而是使用智能指针对象。