Rumah >pembangunan bahagian belakang >C++ >Bolehkah Anda Menentukan Parameter Templat Secara Eksplisit dalam Definisi Pembina?
Walaupun berkebolehan untuk mencipta templat pembina dalam kelas, proses penyusunan biasanya menyimpulkan parameter templat daripada argumen disediakan. Walau bagaimanapun, keraguan timbul jika wujud sintaks yang membenarkan spesifikasi eksplisit parameter templat dalam pembina tersebut.
Pertimbangkan struktur berikut sebagai contoh:
struct A { template<typename T> A() {} };
Persoalannya timbul: adakah terdapat kaedah untuk mewujudkan struktur ini atau mentakrifkan secara eksplisit parameter templat pembinanya?
Dalam amalan, senario mungkin timbul apabila pengkompil gagal mengenal pasti pembina templat yang betul, yang membawa kepada potensi kesukaran. Spesifikasi parameter templat eksplisit boleh meningkatkan pelaporan ralat atau malah menyelesaikan isu.
Jawapan:
Sangat mengecewakan, standard C 03 menawarkan jawapan yang pasti:
"Oleh kerana templat fungsi ahli penukaran dan templat fungsi ahli pembina dipanggil tanpa menggunakan nama fungsi, tidak ada cara untuk menyediakan senarai hujah templat eksplisit untuk templat fungsi ini." (§14.5.2/5)
Pada dasarnya, menyatakan secara eksplisit parameter templat dalam definisi pembina tidak disokong oleh piawai C 03.
Atas ialah kandungan terperinci Bolehkah Anda Menentukan Parameter Templat Secara Eksplisit dalam Definisi Pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!