Pelaksanaan Tersuai make_unique dalam C 11
make_unique ialah fungsi utiliti yang diperkenalkan dalam C 14 untuk mencipta objek_ptr unik dengan contoh yang diperuntukkan secara dinamik . Ini berguna apabila penunjuk mentah tidak diingini dan pengurusan pemilikan diperlukan. Walau bagaimanapun, jika pengkompil anda tidak menyokong make_unique, ia boleh dilaksanakan dengan mudah menggunakan fungsi templat tersuai.
Untuk menulis make_unique, pengisytiharan templat berikut digunakan:
<code class="cpp">template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args );</code>
Templat ini memerlukan jenis T dan bilangan pembolehubah argumen Args. Pelaksanaan berikut mencipta objek unique_ptr dengan contoh T baharu yang dibina menggunakan argumen yang disediakan:
<code class="cpp">template<typename T, typename... Args> std::unique_ptr<T> make_unique(Args&&... args) { return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); }</code>
The std::forward
Pelaksanaan tersuai make_unique ini meniru gelagat versi standard, membolehkan anda mencipta objek_ptr unik dalam C 11 persekitaran yang make_unique tidak disokong.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan `make_unique` dalam C 11 untuk Pengurusan Pemilikan Dipertingkatkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!