Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Makes an integral constant from a type and value.
Syntax
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;
};
Parameters
T
The type of the constant.
v
The value of the constant.
Remarks
The integral_constant
class template, when specialized with an integral type T and a value v of that type, represents an object that holds a constant of that integral type with the specified value. The member named type
is an alias for the generated template specialization type, and the value
member holds the value v used to create the specialization.
The bool_constant
class template is an explicit partial specialization of integral_constant
that uses bool
as the T argument.
Example
// 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
Requirements
Header: <type_traits>
Namespace: std