C++ named requirements: UnaryTypeTrait (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Un UnaryTypeTrait es una plantilla de clase que describe una propiedad de su parámetro de tipo de plantilla con una especialización de std::integral_constant (típicamente std::bool_constant ).
Requisitos
- DefaultConstructible y CopyConstructible .
- Toma un parámetro de tipo plantilla (los parámetros de plantilla adicionales son opcionales y están permitidos).
- Derivado pública e inequívocamente de una especialización de std::integral_constant , conocido como su característica base .
- Los nombres de miembro de la característica base no están ocultos y están disponibles inequívocamente.
Biblioteca estándar
Los siguientes type traits satisfacen todos UnaryTypeTrait :
- Categorías primarias de tipos
- Categorías compuestas de tipos
- Propiedades de tipos
- Operaciones soportadas
- Consultas de propiedades
Las siguientes plantillas de clase de la biblioteca estándar también satisfacen UnaryTypeTrait .
|
(C++11)
|
constante en tiempo de compilación de tipo especificado con valor especificado
(plantilla de clase) |
|
(C++17)
|
metafunción NOT lógica
(plantilla de clase) |
|
(C++11)
|
obtiene el tamaño de
un
|
|
(C++11)
|
obtiene el tamaño de un
array
(especialización de plantilla de clase) |
|
(C++11)
|
obtiene el tamaño de un
pair
(especialización de plantilla de clase) |
|
(C++17)
|
obtiene el tamaño de la lista de alternativas del
variant
en tiempo de compilación
(plantilla de clase) (plantilla de variable) |
|
(C++11)
|
indica que un objeto es una expresión
std::bind
o puede usarse como tal
(plantilla de clase) |
|
(C++11)
|
indica que un objeto es un marcador de posición estándar o puede usarse como tal
(plantilla de clase) |
|
(C++17)
|
prueba si una clase representa una política de ejecución
(plantilla de clase) |