Apakah std::make_unique
ada manfaat efisiensi seperti std::make_shared
?
Dibandingkan dengan membangun secara manual std::unique_ptr
:
std::make_unique<int>(1); // vs
std::unique_ptr<int>(new int(1));
make_shared
dapat mengalokasikan ruang untuk objek dan ruang untuk blok kontrol bersama dalam satu alokasi tunggal. Biaya dari itu adalah bahwa objek tidak dapat dialokasikan secara terpisah dari blok kontrol, jadi jika Anda menggunakan weak_ptr
banyak maka Anda mungkin berakhir menggunakan lebih banyak memori.
make_shared
ada efisiensi lebih dari sekadar menulis kode tangan panjang?