Classe integral_constant, classe bool_constant
Cria uma constante integral de um tipo e um valor.
Sintaxe
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
O tipo da constante.
v
O valor da constante.
Comentários
O modelo de classe integral_constant
, quando especializado com um tipo integral T e um valor v desse tipo, representa um objeto que contém uma constante desse tipo integral com o valor especificado. O membro denominado type
é um alias para o tipo da especialização de modelo gerada e o membro value
contém o valor v usado para criar a especialização.
O modelo de classe bool_constant
é uma especialização parcial explícita de integral_constant
, que usa bool
como o argumento T.
Exemplo
// 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
Cabeçalho:<type_traits>
Namespace: std