Saya memiliki fungsi template dengan satu argumen. Saya harus instantiate fungsi itu tanpa memanggil fungsi itu berarti secara eksplisit saya harus instantiate.
Saya memiliki fungsi ini:
template <class T> int function_name(T a) {}
Saya memberi contoh fungsi itu seperti ini:
template int function_name<int>(int);
Tapi saya mendapat kesalahan berikut:
error: expected primary-expression before 'template'
error: expected `;' before 'template'
template<>
bentuk. Apa yang dia tulis berbeda dengan spesialisasi . 1 untuk mengajari saya hal baru ini. Saya menghapus postingan saya. : DKode Anda benar.
Pesan kesalahan berkaitan dengan tempat di kode yang tidak Anda kutip di sini.
Memperbarui:
Kode asli adalah
dan itu benar.
Tetapi tidak dikutip dan dengan demikian terlihat seperti ini:
Ini menghasilkan kesalahan berikut
yang jelas berbeda dari apa yang dikutip OP.
Dalam varian ini, baris kedua tidak apa-apa (
<int>
dapat dihilangkan di sini), tetapi baris pertama salah. Kompilator tidak dapat menebak bahwa ituT
adalah parameter template.sumber
template int function_name( T a) { }
dantemplate int function_name(int);