在C++14中,std::make_unique
和std::make_shared
函數分別用于創建智能指針std::unique_ptr
和std::shared_ptr
。
std::make_unique
用于動態分配一個對象,并返回相應類型的std::unique_ptr
指針。它接受構造參數,并在內部使用new
操作符來創建對象。這種方式比直接使用new
更安全,因為它確保了對象的正確釋放,從而避免了內存泄漏。std::make_shared
則是用來創建一個std::shared_ptr
,它同樣接受構造參數,并在內部使用new
操作符來創建對象。與std::make_unique
不同的是,std::make_shared
還負責分配控制塊內存,用于管理共享計數等數據,這使得它在性能上通常優于直接使用new
來創建std::shared_ptr
。
簡而言之,這兩個函數都提供了一種更安全、更便捷的方式來創建和管理動態分配的對象,避免了直接使用new
和delete
帶來的問題。