C++ named requirements: UnaryTypeTrait (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Un UnaryTypeTrait est un modèle de classe qui décrit une propriété de son paramètre de type template avec une spécialisation std::integral_constant (généralement std::bool_constant ).
Exigences
- DefaultConstructible et CopyConstructible .
- Prend un paramètre de type template (les paramètres templates supplémentaires sont optionnels et autorisés).
- Dérivé publiquement et sans ambiguïté d'une spécialisation de std::integral_constant , appelée sa caractéristique de base .
- Les noms des membres de la caractéristique de base ne sont pas masqués et sont disponibles sans ambiguïté.
Bibliothèque standard
Les type traits suivants satisfont tous UnaryTypeTrait :
- Catégories de types primaires
- Catégories de types composites
- Propriétés des types
- Opérations supportées
- Requêtes de propriétés
Les modèles de classe de bibliothèque standard suivants satisfont également UnaryTypeTrait .
|
(C++11)
|
constante à la compilation du type spécifié avec la valeur spécifiée
(modèle de classe) |
|
(C++17)
|
métafonction NON logique
(modèle de classe) |
|
(C++11)
|
obtient la taille d'un
|
|
(C++11)
|
obtient la taille d'un
array
(spécialisation de modèle de classe) |
|
(C++11)
|
obtient la taille d'une
pair
(spécialisation de modèle de classe) |
|
(C++17)
|
obtient la taille de la liste d'alternatives du
variant
à la compilation
(modèle de classe) (modèle de variable) |
|
(C++11)
|
indique qu'un objet est une expression
std::bind
ou peut être utilisé comme telle
(modèle de classe) |
|
(C++11)
|
indique qu'un objet est un espace réservé standard ou peut être utilisé comme tel
(modèle de classe) |
|
(C++17)
|
teste si une classe représente une politique d'exécution
(modèle de classe) |