Rumah >pembangunan bahagian belakang >C++ >Mengapakah `std::make_unique` merupakan tambahan yang berharga kepada C walaupun kerumitannya?
Pustaka standard C 11 tidak mempunyai templat fungsi std::make_unique, meninggalkan pembangun menulis kod verbose untuk mencipta petunjuk unik. Pertimbangkan contoh berikut:
std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3));
Untuk mengurangkan keterlaluan ini, sesetengah pembangun telah mencadangkan fungsi make_unique:
auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3);
Sintaks ini menyembunyikan pengendali baharu dan menyebut jenisnya sekali sahaja.
Walau bagaimanapun, melaksanakan fungsi sedemikian memerlukan pemahaman selok-belok pemajuan yang sempurna. Khususnya, ungkapan std::forward:
std::forward<Args>(args)...
melibatkan operasi berikut:
Ringkasnya, std::forward<Args>(args)... membenarkan pemajuan argumen yang sempurna kepada pembina.
Atas ialah kandungan terperinci Mengapakah `std::make_unique` merupakan tambahan yang berharga kepada C walaupun kerumitannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!