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

Bolehkah Anda Menentukan Secara Eksplisit Parameter Templat dalam Pembina dalam C 03?

Susan Sarandon
Lepaskan: 2024-11-18 04:55:01
asal
988 orang telah melayarinya

Can You Explicitly Specify Template Parameters in Constructors in C  03?

Spesifikasi Parameter Templat Eksplisit dalam Pembina

Walaupun keupayaan untuk pembina menjadi fungsi templat, piawaian C 03 tidak menyediakan sintaks untuk menentukan parameter templat mereka secara eksplisit. Sebaliknya, pengkompil secara automatik menentukan parameter ini berdasarkan hujah yang disediakan.

Pertimbangkan contoh berikut:

struct A {
  template<typename T>
  A() {}
};
Salin selepas log masuk

Untuk membuat contoh kelas ini, anda tidak boleh menentukan parameter templat secara eksplisit. Sebaliknya, anda mesti bergantung pada pengkompil untuk membuat kesimpulan daripada argumen yang diserahkan kepada pembina:

A<int> a;  // Constructs an A object with template value int
Salin selepas log masuk

Piawaian C 03 dengan jelas menyatakan:

[Nota: kerana senarai argumen templat eksplisit mengikut nama templat fungsi, dan 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)

Penghadan ini mungkin menghalang usaha penyahpepijatan jika pengkompil gagal menentukan parameter templat yang betul. Spesifikasi parameter eksplisit boleh meningkatkan mesej ralat dan berpotensi menyelesaikan isu tersebut. Walau bagaimanapun, ia tidak disokong oleh piawaian C 03.

Atas ialah kandungan terperinci Bolehkah Anda Menentukan Secara Eksplisit Parameter Templat dalam Pembina dalam C 03?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan