Dalam senario ini, anda ingin membuat instantiate fungsi templat dengan satu hujah tanpa menggunakannya. Instalasi eksplisit melibatkan penciptaan contoh templat secara manual tanpa menggunakan panggilan fungsinya.
Anda menetapkan fungsi templat berikut:
template <class T> int function_name(T a) {}
Sementara percubaan anda untuk membuat seketika fungsi seperti berikut:
template int function_name<int>(int);
mengakibatkan ralat berikut:
error: expected primary-expression before 'template' error: expected `;` before 'template'
Pendekatan yang betul untuk menyatakan fungsi secara eksplisit adalah seperti berikut:
template <typename T> void func(T param) {} // definition template void func<int>(int param); // explicit instantiation.
Berbeza dengan instantiasi templat, pengkhususan templat melibatkan penentuan pelaksanaan khusus untuk jenis parameter templat tertentu. Untuk mengkhususkan templat func untuk parameter int, anda akan menggunakan sintaks berikut:
template <typename T> void func(T param) {} // definition template <> void func<int>(int param) {} // specialization
Perhatikan kurungan sudut selepas templat dalam sintaks pengkhususan.
Atas ialah kandungan terperinci Bagaimanakah Saya Menjelaskan Fungsi Templat dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!