integral_constant (Clase), bool_constant (Clase)
Crea una constante entera a partir de un tipo y un valor.
Sintaxis
template<class T, T v>
struct integral_constant {
static constexpr T value = v;
typedef T value_type;
typedef integral_constant<T, v> type;
constexpr operator value_type() const noexcept;
constexpr value_type operator()() const noexcept;
};
Parámetros
T
Tipo de la constante.
v
Valor de la constante.
Comentarios
La plantilla de clase integral_constant
, si está especializada con un tipo entero T y un valor v de ese tipo, representa un objeto que es una constante de ese tipo entero con el valor especificado. El miembro denominado type
es un alias para el tipo de especialización de la plantilla generada y el miembro value
contiene el valor v usado para crear la especialización.
La plantilla de clase bool_constant
es una especialización parcial explícita de integral_constant
que usa bool
como argumento T.
Ejemplo
// std__type_traits__integral_constant.cpp
// compile with: /EHsc
#include <type_traits>
#include <iostream>
int main()
{
std::cout << "integral_constant<int, 5> == "
<< std::integral_constant<int, 5>::value << std::endl;
std::cout << "integral_constant<bool, false> == " << std::boolalpha
<< std::integral_constant<bool, false>::value << std::endl;
return (0);
}
integral_constant<int, 5> == 5
integral_constant<bool, false> == false
Requisitos
Encabezado:<type_traits>
Espacio de nombres: std