从本地原始指针初始化 std::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();
只要

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

您还应该避免在请求std::unique_ptr(或std::shared_ptr(获得指针所有权后取消引用指针p。请改用智能指针对象。

相关内容

  • 没有找到相关文章

最新更新