Bilakah Anda Akan Menggunakan Parameter Bukan Jenis dalam Templat C?

Susan Sarandon
Lepaskan: 2024-10-24 14:26:30
asal
983 orang telah melayarinya

When Would You Use Non-Type Parameters in C   Templates?

Templat dengan Parameter Bukan Jenis

Parameter templat biasanya digunakan untuk menentukan keperluan jenis, tetapi anda juga boleh mengisytiharkan templat dengan bukan- jenis parameter, seperti integer yang tidak ditandatangani.

Syntax and Meaning

Sintaks untuk templat dengan parameter bukan jenis ialah:

template <unsigned int N>
Salin selepas log masuk

di mana N mewakili parameter bukan jenis. Parameter ini kemudiannya boleh digunakan dalam templat sebagai pemalar masa kompilasi jenis unsigned int.

Kes Penggunaan

Parameter bukan jenis berguna dalam pelbagai senario:

  • Saiz Tatasusunan: N boleh digunakan untuk menentukan saiz tatasusunan atau struktur data bersaiz tetap lain.
  • Nilai Malar: Ia boleh berfungsi sebagai ungkapan malar, memberikan nilai tetap yang tidak berubah pada masa jalan.
  • Sempadan Gelung: N boleh digunakan untuk menentukan sempadan gelung atau lelaran.
  • Kompilasi Bersyarat: Laluan kod yang berbeza boleh dipilih berdasarkan nilai N.

Parameter Jenis lwn Parameter Bukan Jenis

Adalah penting untuk mengambil perhatian perbezaan antara parameter jenis dan parameter bukan jenis. Parameter jenis mewakili jenis (cth., kelas T atau templat T), manakala parameter bukan jenis mewakili pemalar (cth., int N yang tidak ditandatangani).

Contoh

Pertimbangkan templat berikut:

template &lt;unsigned int N&gt;
struct Vector {
    unsigned char bytes[N];
};
Salin selepas log masuk

Di sini, N ialah parameter bukan jenis yang menentukan saiz tatasusunan bait.

<code class="cpp">Vector<3> v; // Vector with 3 bytes</code>
Salin selepas log masuk

Nilai Lalai

Ada kemungkinan untuk menentukan nilai lalai untuk parameter bukan jenis, membenarkan templat digunakan tanpa memberikan parameter secara eksplisit. Contohnya:

<code class="cpp">template <unsigned int SIZE = 3>
struct Vector {
    unsigned char buffer[SIZE];
};</code>
Salin selepas log masuk

Templat di atas lalai SAIZ kepada 3, jadi yang berikut adalah sah:

<code class="cpp">Vector v; // Equivalent to Vector<3></code>
Salin selepas log masuk

Kesimpulan

Bukan- parameter jenis dalam templat menawarkan fleksibiliti dan membenarkan penggunaan semula kod dengan nilai tetap atau tetap. Ia mendayakan pelbagai kes penggunaan, daripada saiz tatasusunan kepada penyusunan bersyarat.

Atas ialah kandungan terperinci Bilakah Anda Akan Menggunakan Parameter Bukan Jenis dalam Templat C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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