Heim > Backend-Entwicklung > C++ > Hauptteil

Welche Einschränkungen gibt es bei der Spezialisierung von Vorlagen im std-Namespace?

Susan Sarandon
Freigeben: 2024-10-30 18:59:30
Original
285 Leute haben es durchsucht

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

Spezialisierungseinschränkungen innerhalb des std-Namespace

Der std-Namespace ermöglicht eine explizite Spezialisierung seiner Vorlagen, es bestehen jedoch bestimmte Einschränkungen.

Vorlagen, deren Spezialisierung verboten ist:

Gemäß dem C-Standard können die folgenden Vorlagen nicht innerhalb des std-Namespace spezialisiert werden:

  • numeric_limits für nicht -arithmetische Typen (z. B. complex):Nur ​​arithmetische Typen können spezialisiert werden.
  • shared_ptr und schwacher_ptr:Müssen bestimmte Anforderungen an Kopierbarkeit, Zuweisbarkeit und Vergleiche erfüllen.
  • Hash: Spezialisierungen müssen den Anforderungen der Standard-Hash-Klassenvorlage entsprechen.
  • Typmerkmale (): Spezialisierungsverhalten ist undefiniert, sofern nicht ausdrücklich erlaubt (z. B. sind nur bestimmte common_type-Spezialisierungen zulässig).
  • Gebietsschemata: Haben erforderliche Spezialisierungen.
  • istreambuf_iterator: Erfordern a trivialer Kopierkonstruktor, Standardkonstruktor und Destruktor.
  • komplex für Nicht-Gleitkommatypen: Das Definieren von Spezialisierungen für andere Typen wird als sinnlos angesehen.
  • atomar :Kopiervorgänge und ein constexpr-Wertkonstruktor müssen gelöscht sein.
  • unäre_Funktion und binäre_Funktion:Spezialisierungen sind veraltet und verboten.

Allgemein Einschränkungen:

  • Jede Spezialisierung darf nicht im Widerspruch zu den ursprünglichen Vorlagenanforderungen stehen.
  • Explizite Spezialisierungen und Instanziierungen von Standardbibliotheksvorlagen sind verboten, sofern nicht ausdrücklich angegeben.
  • Explizite Spezialisierungen von Mitgliedsfunktionen, Funktionsvorlagen oder Mitgliedsklassenvorlagen von Standardbibliotheksklassen sind undefiniertes Verhalten.

Das obige ist der detaillierte Inhalt vonWelche Einschränkungen gibt es bei der Spezialisierung von Vorlagen im std-Namespace?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!