Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah token elipsis (...) berfungsi dalam templat variadik C 11?
Templat Variadik dan Token Elipsis ("...")
Dalam C 11, templat variadik membenarkan bilangan templat yang fleksibel parameter. Apabila mentakrifkan templat variadik, token elipsis (...) memainkan peranan yang penting.
Membongkar lwn. Pembungkusan
Kedudukan elipsis menentukan fungsinya:
Contoh Membongkar
Pertimbangkan fungsi templat variadik berikut:
<code class="cpp">template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); }</code>
Apabila menggunakan make_unique dengan berbilang argumen, elipsis (dalam std::forward(Args>(args)...) membenarkan fungsi menerima bilangan argumen yang berubah-ubah. Elipsis membongkar pek parameter Args, menghasilkan berikut ungkapan diperluaskan:
<code class="cpp">std::forward<Arg0>(arg0), std::forward<Arg1>(arg1), ...</code>
Penempatan Ellipsis dalam Templat dan Argumen Fungsi
Dalam senarai hujah templat, elipsis diletakkan di tengah untuk menunjukkan bahawa parameter pek diteruskan dalam senarai parameter fungsi Ini kerana mungkin terdapat parameter templat tambahan (cth., parameter bukan variadik) mengikut pek parameter variadik.
Dalam pelaksanaan fungsi, elipsis diletakkan pada penghujung. daripada ungkapan untuk menandakan penghujung hujah yang tidak dibungkus Ia memastikan bahawa sebarang hujah yang tinggal dihantar tanpa dibungkus ke dalam satu entiti.
Aplikasi Tambahan
Elipsis. juga boleh digunakan dalam konteks lain, seperti:
Atas ialah kandungan terperinci Bagaimanakah token elipsis (...) berfungsi dalam templat variadik C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!