最佳答案
与使用 new
操作符初始化 std::unique_ptr
相比,使用 std::make_unique
的优点是什么?
换句话说,为什么
std::unique_ptr<SomeObject> a = std::make_unique(SomeObject(...))
总比做好
std::unique_ptr<SomeObject> a = new SomeObject(...)
我在网上查了很多资料,我知道在现代 C + + 中避免使用操作符 new
是一个很好的经验法则,但是我不确定在这种情况下有什么好处。它能防止任何可能发生的内存泄漏吗?做 std::make_unique
比使用 new
快吗?