Templat Bekas Standard dan Jenis Tidak Lengkap
Timbul persoalan sama ada templat bekas standard boleh dijadikan instantiated dengan jenis yang tidak lengkap. Walaupun pembinaan kontena tertentu mungkin kelihatan berfungsi dalam amalan, Piawaian C 11 secara jelas melarang ini di bawah §17.6.4.8 [lib.res.on.functions].
Piawaian menyatakan bahawa, "… jika jenis tidak lengkap (3.9) digunakan sebagai hujah templat apabila membuat seketika komponen templat, melainkan dibenarkan secara khusus untuk komponen itu." Sekatan ini terpakai pada fungsi ahli, takrifan kelas ahli dan tandatangan, tetapi bukan untuk operasi dalam skop blok.
Pelaksanaan perpustakaan standard tidak boleh mendorong instantiasi templat yang akan gagal untuk jenis yang tidak lengkap, walaupun jika instantiasi lain yang diperlukan khusus berjaya . Larangan ini bertujuan untuk menghalang isu yang berpotensi, seperti jenis rujukan sendiri yang timbul daripada pengoptimuman seperti "vektor kecil."
Pengecualian wujud, seperti templat kelas std::unique_ptr, yang secara jelas menyokong hujah jenis tidak lengkap, walaupun dalam skop blok. Walau bagaimanapun, untuk bekas standard, sekatan untuk menggunakan jenis yang tidak lengkap kekal, memastikan gelagat yang konsisten merentas pelaksanaan.
Atas ialah kandungan terperinci Bolehkah Templat Bekas Standard Dimulakan dengan Jenis Tidak Lengkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!