ไม่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
ได้มีประสิทธิภาพมากกว่าเพียงแค่เขียนโค้ดมือยาว?