Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah Sekatan terhadap Pengkhususan Templat dalam Ruang Nama std?

Apakah Sekatan terhadap Pengkhususan Templat dalam Ruang Nama std?

Susan Sarandon
Susan Sarandonasal
2024-10-30 18:59:30286semak imbas

 What are the Restrictions on Specializing Templates within the std Namespace?

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!

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