Pengkhususan templat membolehkan pelaksanaan khusus disediakan untuk jenis tertentu. Peraturan termasuk: Apabila pengkhususan padanan tepat wujud, gunakan pengkhususan itu. Pengkhususan ini digunakan apabila pengkhususan padanan separa wujud. Apabila tiada pengkhususan wujud, templat utama digunakan. Pengkhususan penuh diutamakan daripada pengkhususan separa. Pengkhususan penuh boleh dibebankan, tetapi pengkhususan separa dan templat induk tidak boleh.
Peraturan Pengkhususan Templat dalam Pengaturcaraan Generik C++
Pengkhususan Templat membolehkan kami menyediakan pelaksanaan khusus untuk kelas atau fungsi templat dan bukannya menggunakannya pada semua jenis. Ini memberikan fleksibiliti, kecekapan dan kebolehbacaan yang lebih besar.
Peraturan:
Contoh Praktikal:
Pertimbangkan fungsi templat berikut untuk menukar dua elemen:
template<typename T> void swap(T& a, T& b) { T temp = a; a = b; b = temp; }
Kami boleh mencipta pengkhususan penuh untuk jenis tertentu, seperti int
: int
:
template<> void swap(int& a, int& b) { a ^= b; b ^= a; a ^= b; }
当我们调用 swap
rreee
swap
, pengkompil akan memilih pengkhususan padanan terbaik berdasarkan jenis parameter yang diluluskan: int x = 1, y = 2; // 调用完全特化的 swap 函数 swap(x, y); // x = 2, y = 1
Atas ialah kandungan terperinci Apakah peraturan untuk pengkhususan templat dalam pengaturcaraan generik C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!