Rumah >pembangunan bahagian belakang >C++ >Bolehkah Anda Menentukan Parameter Templat Secara Eksplisit dalam Definisi Pembina?

Bolehkah Anda Menentukan Parameter Templat Secara Eksplisit dalam Definisi Pembina?

DDD
DDDasal
2024-11-29 16:42:12651semak imbas

Can You Explicitly Specify Template Parameters in Constructor Definitions?

Bolehkah Spesifikasi Parameter Templat Eksplisit dalam Definisi Pembina Dicapai?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn