integral_constant 类、bool_constant 类
从类型和值生成整型常量。
语法
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;
};
参数
T
常量的类型。
v
常量的值。
注解
使用整型类型 T 和该类型的值 v 进行专用化的 integral_constant
类模板表示一个对象,该对象保留该整型类型的常量以及指定的值。 名为 type
的成员是生成的模板专用化类型的别名,value
成员具有用于创建此专用化的值 v。
bool_constant
类模板是将 bool
用作 T 参数的 integral_constant
的显式部分专用化。
示例
// 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
要求
标头:<type_traits>
命名空间: std