Pengkhususan Eksplisit dalam Ruang Nama std: Had dan Elaun
Sementara pengguna diberi keupayaan untuk menambahkan pengkhususan eksplisit pada ruang nama std, tertentu templat dilarang secara jelas daripada amalan ini.
Pengkhususan Terlarang
Mengikut standard, templat berikut tidak boleh dikhususkan:
- had_numerik untuk jenis standard bukan aritmetik seperti complex
- shared_ptr, melainkan mereka memenuhi kriteria khusus untuk kebolehsalinan, kebolehtugasan dan kebolehbandingan
- weak_ptr, melainkan mereka boleh disalin dan ditugaskan
- std::hash, melainkan pengkhususan mematuhi keperluan templatnya
- Templat kelas yang ditakrifkan dalam (kecuali common_type)
- Tempatan, yang memerlukan pengkhususan khusus
- istreambuf_iterator, yang mesti mempunyai pembina salinan remeh, pembina lalai dan pemusnah
- kompleks untuk jenis selain apungan, double, atau long double
- atom, melainkan pengkhususan mengikut kekangan tertentu seperti telah memadamkan pembina salinan dan pembina nilai
- unary_function dan binary_function, yang ditamatkan dan tidak boleh dikhususkan
Pertimbangan Menyeluruh
Selain larangan khusus ini, piawaian menyediakan garis panduan am untuk menambah ruang nama std:
- Pengisytiharan atau takrifan kepada std atau ruang kecilnya tidak boleh ditambah melainkan dinyatakan secara eksplisit.
- Pengkhususan templat dibenarkan hanya jika ia bergantung pada jenis yang ditentukan pengguna dan memenuhi keperluan perpustakaan.
- Pengkhususan fungsi ahli untuk perpustakaan standard kelas, templat fungsi ahli dan templat kelas ahli adalah dilarang.
- Instasiasi templat eksplisit hanya dibenarkan jika ia bergantung pada jenis yang ditentukan pengguna dan memenuhi keperluan perpustakaan.
Dengan mematuhi kepada batasan ini, pembangun boleh memastikan bahawa pengkhususan mereka tidak bercanggah dengan integriti dan kebolehkendalian perpustakaan standard dalam ruang nama std.
Atas ialah kandungan terperinci Bolehkah Anda Mengkhususkan Setiap Templat dalam Ruang Nama `std`? Had dan Elaun dalam Pengkhususan Eksplisit. 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