Rumah >pembangunan bahagian belakang >C++ >Apakah Sekatan dan Elaun untuk Pengkhususan dalam Ruang Nama std?

Apakah Sekatan dan Elaun untuk Pengkhususan dalam Ruang Nama std?

Barbara Streisand
Barbara Streisandasal
2024-11-02 13:31:30912semak imbas

 What are the Restrictions and Allowances for Specialization within the std Namespace?

Pengkhususan dalam Ruang Nama std: Sekatan dan Elaun

Walaupun berkebolehan untuk menambah pengkhususan eksplisit pada ruang nama std, templat tertentu mempunyai larangan yang jelas . Memahami sekatan ini adalah penting untuk memastikan kesahihan kod menggunakan pengkhususan ruang nama std.

Templat Dilarang daripada Pengkhususan

  • numeric_limits: Bukan dibenarkan untuk jenis standard bukan aritmetik (cth., kompleks).
  • shared_ptr: Mesti CopyConstructible, CopyAssignable, LessThanComparable dan boleh tukar kepada bool.
  • weak_ptr: Mesti CopyConstructible dan CopyAssignable.
  • std::hash: Pengkhususan mesti memenuhi keperluan cincang templat kelas.
  • jenis_ciri : Pengkhususan eksplisit mana-mana templat kelas dalam tidak ditentukan melainkan dinyatakan.
  • Tempatan: Mempunyai pengkhususan yang diperlukan.
  • istreambuf_iterator: Memerlukan pembina salinan remeh, pembina lalai constexpr dan pembina trivial .
  • kompleks: Hanya pengkhususan berganda terapung, berganda dan panjang dibenarkan.
  • atom: Pengkhususan mesti mempunyai pembina salinan yang dipadamkan, salinan pengendali tugasan dan pembina nilai constexpr.
  • unary_function dan binary_function: Ditamatkan dan tidak seharusnya dikhususkan.

Sekatan Tambahan

  • Setiap klausa 17.6.4.2.1, tingkah laku tidak ditentukan apabila menambah pengisytiharan atau takrifan pada ruang nama std atau ruang kecilnya. Pengecualian hanya digunakan untuk pengkhususan templat yang bergantung pada jenis yang ditentukan pengguna dan memenuhi keperluan standard.
  • Dilarang mengkhususkan secara eksplisit mana-mana fungsi ahli bagi templat kelas perpustakaan standard, templat fungsi ahli atau templat kelas ahli.

Templat Dibenarkan untuk Pengkhususan

Templat yang tidak dilarang secara jelas boleh dikhususkan jika ia bergantung pada jenis yang ditentukan pengguna dan memenuhi keperluan standard untuk templat asal.

Atas ialah kandungan terperinci Apakah Sekatan dan Elaun untuk Pengkhususan 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