Seruan Fungsi Ahli Templat daripada Fungsi Templat
Dalam kod yang disediakan, ralat penyusunan berlaku apabila cuba memanggil fungsi ahli templat f dari dalam fungsi templat g. Ralat, yang dilaporkan oleh GCC, menunjukkan bahawa penggunaan f<3> adalah tidak sah.
Untuk menyelesaikan ralat ini, sintaks yang betul untuk memanggil fungsi ahli templat daripada fungsi templat adalah untuk mengawal nama fungsi ahli dengan kata kunci templat. Ini kerana pengkompil memerlukan petunjuk jelas bahawa fungsi ahli ialah pengkhususan templat apabila digunakan dalam konteks sedemikian.
Kod yang diperbetulkan ialah:
<code class="cpp">template<class T> void g() { A<T> a; a.template f<3>(); // Add 'template' keyword here }</code>
Sintaks ini memastikan bahawa pengkompil mengenal pasti dan membuat instantiat pengkhususan templat yang sesuai bagi fungsi ahli f.
Atas ialah kandungan terperinci Mengapakah Memanggil Ahli Templat Berfungsi daripada Fungsi Templat Memerlukan Kata Kunci \'templat\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!