C++ named requirements: UnaryTypeTrait (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ein UnaryTypeTrait ist eine Klassentemplate, das eine Eigenschaft seines Template-Typparameters mit einer std::integral_constant -Spezialisierung (typischerweise std::bool_constant ) beschreibt.
Anforderungen
- DefaultConstructible und CopyConstructible .
- Nimmt einen Template-Typparameter an (zusätzliche Template-Parameter sind optional und erlaubt).
- Öffentlich und eindeutig abgeleitet von einer Spezialisierung von std::integral_constant , bekannt als seine Basiseigenschaft .
- Die Mitgliedsnamen der Basiseigenschaft sind nicht verborgen und sind eindeutig verfügbar.
Standardbibliothek
Die folgenden Type Traits erfüllen alle UnaryTypeTrait :
- Primäre Typkategorien
- Zusammengesetzte Typkategorien
- Typeigenschaften
- Unterstützte Operationen
- Eigenschaftsabfragen
Die folgenden Standardbibliothek-Klassen-Templates erfüllen ebenfalls UnaryTypeTrait .
|
(C++11)
|
Kompilierzeitkonstante des angegebenen Typs mit angegebenem Wert
(Klassentemplate) |
|
(C++17)
|
Logische NOT-Metafunktion
(Klassentemplate) |
|
(C++11)
|
Ermittelt die Größe eines
|
|
(C++11)
|
Ermittelt die Größe eines
array
(Klassentemplate-Spezialisierung) |
|
(C++11)
|
Ermittelt die Größe eines
pair
(Klassentemplate-Spezialisierung) |
|
(C++17)
|
Ermittelt die Größe der Alternativenliste eines
variant
zur Kompilierzeit
(Klassentemplate) (Variablentemplate) |
|
(C++11)
|
Zeigt an, dass ein Objekt ein
std::bind
-Ausdruck ist oder als solcher verwendet werden kann
(Klassentemplate) |
|
(C++11)
|
Zeigt an, dass ein Objekt ein Standard-Platzhalter ist oder als solcher verwendet werden kann
(Klassentemplate) |
|
(C++17)
|
Testet, ob eine Klasse eine Ausführungsrichtlinie repräsentiert
(Klassentemplate) |