The std::is_integral template of C++ STL is used to check whether the given type is integral or not. It returns a boolean value showing the same.
Syntax:
template <class T> struct is_integral;
Template Parameter: This template accepts a single parameter T (Trait class) to check whether T is a integral type or not.
Return Value: This template returns a boolean value as shown below:
- true: if the type is a integral.
- false: if the type is a non-integral.
Below programs illustrate the std::is_integral template in C++:
Program 1::
// C++ program to illustrate // is_integral function #include <iostream> #include <type_traits> using namespace std;
// main program int main()
{ cout << boolalpha;
cout << "is_integral:" << endl;
cout << "char: " << is_integral
< char >::value << endl;
cout << "int: " << is_integral
< int >::value << endl;
cout << "float: " << is_integral
< float >::value << endl;
return 0;
} |
Output:
is_integral: char: true int: true float: false
Program 2::
// C++ program to illustrate // is_integral function #include <iostream> #include <type_traits> using namespace std;
// main program int main()
{ cout << boolalpha;
cout << "is_integral:" << endl;
cout << "double: " << is_integral
< double >::value << endl;
cout << "bool: " << is_integral
< bool >::value << endl;
cout << "long int: " << is_integral
< long int >::value << endl;
return 0;
} |
Output:
is_integral: double: false bool: true long int: true
Program 3::
// C++ program to illustrate // is_integral function #include <iostream> #include <type_traits> using namespace std;
// main program int main()
{ cout << boolalpha;
cout << "is_integral:" << endl;
cout << "wchar_t: " << is_integral
< wchar_t >::value << endl;
cout << "long double: " << is_integral
< long double >::value << endl;
cout << "unsigned short int: " << is_integral
<unsigned short int >::value << endl;
return 0;
} |
Output:
is_integral: wchar_t: true long double: false unsigned short int: true