Rumah > Artikel > pembangunan bahagian belakang > Mengapakah Menggunakan Templat Fungsi Ahli daripada Fungsi Templat Memerlukan Kata Kunci `template`?
Fungsi Ahli Invokasi Kelas Templat daripada Fungsi Templat
Dalam coretan kod yang disediakan, menggunakan templat fungsi ahli dari dalam templat lain menghasilkan ralat penyusunan. Khususnya, kod cuba memanggil A
Untuk menyelesaikan masalah ini, kata kunci templat mesti dinyatakan secara eksplisit sebelum pemanggilan fungsi ahli. Ini kerana menurut C '03 Standard 14.2/4, apabila nama pengkhususan templat ahli muncul selepas postfix-expression atau qualified-id yang bergantung pada parameter templat, nama templat ahli mesti diawali dengan kata kunci templat .
Oleh itu, kod berikut adalah betul:
<code class="cpp">template<class T> void g() { A<T> a; a.template f<3>(); // Explicitly specify 'template' keyword }</code>
Dengan menambahkan kata kunci templat, pengkompil boleh mengenal pasti dengan betul bahawa f ialah templat ahli templat kelas A, dan ia boleh berjaya memanggil A
Atas ialah kandungan terperinci Mengapakah Menggunakan Templat Fungsi Ahli daripada Fungsi Templat Memerlukan Kata Kunci `template`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!