Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pesanan Separa Menentukan Pengkhususan Antara Templat Fungsi?
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!