<type_traits>

class template
<type_traits>

std::is_integral

template <class T> struct is_integral;
Is integral

Trait class that identifies whether T is an integral type.

It inherits from integral_constant as being either true_type or false_type, depending on whether T is 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

All fundamental integral types, along with all their aliases (like those in cstdint), are considered integral types by this class, including their const and volatile qualified variants.

Enums are not considered integral types in C++ (see is_enum).

Template parameters

T
A type.

Member types

Inherited from integral_constant:
member typedefinition
value_typebool
typeeither true_type or false_type

Member constants

Inherited from integral_constant:
member constantdefinition
valueeither true or false

Member functions

Inherited from integral_constant:

Example

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;
}

Output:
is_integral:
char: true
int: true
float: false


See also