Penyegerakan Fungsi Templat Eksplisit
Mengajukan fungsi templat melibatkan penciptaan pelaksanaan khusus untuk jenis tertentu. Ini berbeza daripada memanggil fungsi atau mengkhususkannya untuk jenis tertentu.
Soalan:
Anda telah menentukan fungsi templat dengan satu hujah dan ingin menyatakannya secara eksplisit tanpa memanggilnya.
Jawapan:
Kepada nyatakan fungsi secara eksplisit, ikut langkah berikut:
Tentukan fungsi templat:
template <class T> int function_name(T a) {}
Segera templat untuk jenis yang diingini:
template void function_name<int>(int); // Explicit instantiation
Walau bagaimanapun, kod yang anda berikan mengandungi sintaks kesilapan. Versi yang diperbetulkan hendaklah:
template <> void function_name<int>(int); // Explicit instantiation
Nota tentang Pengkhususan lwn. Instantiation:
Sedar bahawa instantiasi eksplisit berbeza daripada pengkhususan templat. Pengkhususan mencipta versi baharu fungsi untuk jenis tertentu, manakala instantiasi eksplisit mencipta contoh templat asal untuk jenis tertentu.
Atas ialah kandungan terperinci Bagaimanakah Saya Menjelaskan Fungsi Templat Tanpa Memanggilnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!