是否std::make_unique
有像任何效率优势std::make_shared
?
与手动构建相比std::unique_ptr
:
std::make_unique<int>(1); // vs
std::unique_ptr<int>(new int(1));
make_shared
可以在一个分配中一起分配对象的空间和控制块的空间,所以它可以。这样做的代价是无法将对象与控制块分开释放,因此,如果使用过多的对象,weak_ptr
最终可能会使用更多的内存。
make_shared
有任何效率上只是写了长手代码?