Rumah > pembangunan bahagian belakang > C++ > Mengapa Pengkhususan Separa Ahli Fungsi Templat Menyebabkan 'Penggunaan Jenis Tidak Lengkap' tidak sah?

Mengapa Pengkhususan Separa Ahli Fungsi Templat Menyebabkan 'Penggunaan Jenis Tidak Lengkap' tidak sah?

Mary-Kate Olsen
Lepaskan: 2024-12-03 02:17:09
asal
983 orang telah melayarinya

Why Does Partial Specialization of a Template Function Member Cause

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() {
}
Salin selepas log masuk

anda mungkin menerima ralat "penggunaan tidak sah jenis tidak lengkap 'struct foo'." Ini berlaku kerana C memerlukan anda mengkhususkan sebahagian keseluruhan templat apabila mengkhususkan fungsi ahli.

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() {
   }
};
Salin selepas log masuk

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!

sumber:php.cn
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