Rumah >pembangunan bahagian belakang >C++ >Mengapa Pengkhususan Separa Ahli Fungsi Templat Menyebabkan 'Penggunaan Jenis Tidak Lengkap' tidak sah?
Ralat "Penggunaan Jenis Tidak Lengkap" dalam Pengkhususan Templat Separa
Apabila cuba mencipta pengkhususan separa fungsi templat dengan sintaks :
template <typename T> void foo<int, T>::bar() { }
anda mungkin menerima ralat "penggunaan tidak sah jenis tidak lengkap 'struct foo
Untuk menyelesaikannya, nyatakan tandatangan templat lengkap apabila sebahagiannya mengkhususkan kelas:
template <typename S, typename T> struct foo { void bar(); }; template <> struct foo<int, T> { void bar() { } };
Sebagai alternatif, anda boleh menggunakan penyelesaian seperti mencipta struct templat bersarang atau mendapatkan daripada templat lain yang sebahagiannya pakar.
Nota: Ini terpakai hanya untuk pengkhususan separa fungsi ahli. Mengkhususkan sepenuhnya fungsi templat tidak memerlukan pengkhususan keseluruhan templat.
Atas ialah kandungan terperinci Mengapa Pengkhususan Separa Ahli Fungsi Templat Menyebabkan 'Penggunaan Jenis Tidak Lengkap' tidak sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!