Bagaimanakah sintaks elipsis berfungsi dengan pek parameter templat variadic dalam C 11?

Susan Sarandon
Lepaskan: 2024-10-30 10:52:03
asal
792 orang telah melayarinya

How does the ellipsis syntax work with variadic template parameter packs in C  11?

Sintaks Elipsis Templat Variadik

Templat variadik dalam C 11 membenarkan bilangan argumen templat yang berubah-ubah. Sintaks untuk token elipsis (...) dalam konteks ini mengikut peraturan yang ketat:

Membongkar/Membungkus:
Kedudukan elipsis menentukan tujuannya:

  • Sebelah kanan (corak): Membongkar pek parameter templat.
  • Sebelah kiri (nama): Mencipta hujah yang padat.

Peluasan:
Corak di sebelah kiri ... diulang, dengan ungkapan dipisahkan koma menggantikan setiap corak yang tidak dibungkus.

Aplikasi:
Dalam kod yang disediakan:

<code class="cpp">return unique_ptr<T>(new T(std::forward<Args>(args)...));</code>
Salin selepas log masuk
  • std::forward: Merupakan fungsi templat bukan variasi yang mengambil satu parameter dan hujah templat.
  • Membongkar: std::forward(args)... mengembang kepada std::forward(arg0), std::forward(arg1), ..., dengan arg0, arg1, ... ialah hujah individu.

Sebab Peletakan Ellipsis:
Dalam senarai argumen templat dan senarai parameter, elipsis diletakkan di tengah untuk mencapai pengembangan yang berbeza.

  • Senarai hujah templat: Elipsis membenarkan bilangan argumen yang berubah-ubah.
  • Parameter senarai: Ellipsis memastikan bahawa hujah diluluskan sebagai satu hujah yang dibungkus.

Nota Tambahan:

  • Corak boleh termasuk penentu capaian (cth., awam).
  • Elipsis boleh digunakan untuk memulakan tatasusunan, cth., {args, sizeof(T)}....
  • Sintaks adalah sama tanpa mengira sama ada templat ialah kelas atau fungsi.

Atas ialah kandungan terperinci Bagaimanakah sintaks elipsis berfungsi dengan pek parameter templat variadic dalam C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!