Prosedur Pesanan Separa dalam Potongan Templat
Prosedur pesanan separa dalam potongan templat menentukan hubungan pengkhususan antara dua templat fungsi. Ia melibatkan dua peringkat:
Peringkat 1: Transformasi
Untuk setiap templat, prosedur pesanan separa mencipta "jenis fungsi diubah" dengan menggantikan semua jenis, bukan jenis , dan parameter templat templat dengan jenis unik dan tidak digunakan.
Peringkat 2: Perbandingan
Jenis fungsi yang diubah dibandingkan dalam dua cara:
Jika salah satu perlawanan berjaya dan satu lagi gagal, maka templat dengan perlawanan yang berjaya dianggap lebih khusus. Jika tiada padanan berjaya, maka kedua-dua templat tidak lebih khusus.
Contoh:
Pertimbangkan dua templat fungsi berikut:
template<typename T, typename U> void foo(T, U); // Template 1 template<typename T> void foo(T const*, X<T>); // Template 2
Untuk menentukan templat mana yang lebih khusus, kami:
1. Cipta Jenis Fungsi Berubah:
2. Bandingkan Jenis Fungsi Terubah:
Kesimpulan: Templat 2 lebih khusus daripada Templat 1.
Atas ialah kandungan terperinci Bagaimanakah Pesanan Separa Menentukan Pengkhususan Antara Templat Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!