Sekatan Pengkhususan dalam Ruang Nama std
Ruang nama std membenarkan pengkhususan eksplisit templatnya, tetapi had khusus wujud.
Templat Dilarang daripada Pengkhususan:
Menurut piawaian C, templat berikut tidak boleh dikhususkan dalam ruang nama std:
-
numeric_limits untuk bukan -jenis aritmetik (cth., kompleks): Hanya jenis aritmetik boleh dikhususkan.
-
shared_ptr dan weak_ptr: Mesti memenuhi keperluan khusus untuk kebolehsalinan, kebolehtugasan dan perbandingan.
-
cincang: Pengkhususan mesti mematuhi keperluan templat kelas cincang standard.
-
Ciri jenis (): Tingkah laku pengkhususan tidak ditentukan melainkan dibenarkan secara eksplisit (cth., hanya pengkhususan biasa_jenis tertentu dibenarkan).
-
Tempat: Mempunyai pengkhususan yang diperlukan.
-
istreambuf_iterator: Memerlukan a pembina salinan remeh, pembina lalai dan pemusnah.
-
kompleks untuk jenis bukan titik terapung: Mentakrifkan pengkhususan untuk jenis lain dianggap sia-sia.
-
atom : Mesti telah memadamkan operasi salinan dan pembina nilai constexpr.
-
unary_function dan binary_function: Pengkhususan ditamatkan dan dilarang.
Umum Sekatan:
- Sebarang pengkhususan tidak boleh bercanggah dengan keperluan templat asal.
- Pengkhususan eksplisit dan instantiasi templat perpustakaan standard adalah dilarang melainkan dinyatakan secara eksplisit.
- Pengkhususan eksplisit bagi fungsi ahli, templat fungsi atau templat kelas ahli bagi kelas perpustakaan standard ialah tingkah laku yang tidak ditentukan.
Atas ialah kandungan terperinci Apakah Sekatan terhadap Pengkhususan Templat dalam Ruang Nama std?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!