<type_traits>

类模板
<type_traits>

std::is_integral

template <class T> struct is_integral;
is_integral

Trait类,用于识别T是否为整型。

它继承自 integral_constant,并根据Tis an integral type

fundamental integral types
bool
char
char16_t
char32_t
wchar_t
signed char
short int
int
long int
long long int
unsigned char
unsigned short int
unsigned int
unsigned long int
unsigned long long int

所有基本整型以及它们的所有别名(例如cstdint中的别名),包括它们的constvolatile限定的变体,都被此类视为整型。

枚举类型在C++中不被视为整型(参见is_enum)。

模板参数

T
一个类型。

成员类型

继承自integral_constant
成员类型定义
value_typebool
类型true_type 或 false_type

成员常量

继承自integral_constant
成员常量定义
truefalse

成员函数

继承自integral_constant

示例

1
2
3
4
5
6
7
8
9
10
11
12
// is_integral example
#include <iostream>
#include <type_traits>

int main() {
  std::cout << std::boolalpha;
  std::cout << "is_integral:" << std::endl;
  std::cout << "char: " << std::is_integral<char>::value << std::endl;
  std::cout << "int: " << std::is_integral<int>::value << std::endl;
  std::cout << "float: " << std::is_integral<float>::value << std::endl;
  return 0;
}

输出
is_integral:
char: true
int: true
float: false


另见