Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah sintaks elipsis berfungsi dengan pek parameter templat variadic dalam C 11?

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

Susan Sarandon
Lepaskan: 2024-10-30 10:52:03
asal
974 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!

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