is_arithmetic Template in C++ - GeeksforGeeks

19 Nov, 2018
The std::is_arithmetic templateof C++ STL is used to check whether the given type is arithmetic or not. An Arithmetic type means an integral type or a floating-point type. It returns a boolean value showing the same.
Syntax:
template <class T> struct is_arithmetic;
Parameters: This template accepts a single parameter T (Trait class) to check whether T is an arithmetic type or not.
Return Value: This template returns a boolean value as shown below:
True: if the type is a arithmetic.
False: if the type is a non-arithmetic.
Below programs illustrate the std::is_arithmetic template in C++ STL:
Program 1:
// C++ program to illustrate// is_arithmetic template  #include <iostream>#include <type_traits>using namespace std;  // main programclass GFG {};  int main(){    cout << boolalpha;    cout << "is_arithmetic:" << '\n';    cout << "GFG: "         << is_arithmetic<GFG>::value << '\n';    cout << "bool: "         << is_arithmetic<bool>::value << '\n';    cout << "long: "         << is_arithmetic<long>::value << '\n';    cout << "short: "         << is_arithmetic<short>::value << '\n';    return 0;}
is_arithmetic:
GFG: false
bool: true
long: true
short: true

Program 2:
// C++ program to illustrate// is_arithmetic template  #include <iostream>#include <type_traits>using namespace std;  // main programclass GFG {};  int main(){    cout << boolalpha;    cout << "is_arithmetic:" << '\n';    cout << "GFG: "         << is_arithmetic<GFG>::value << '\n';    cout << "int: "         << is_arithmetic<int>::value << '\n';    cout << "int const: "         << is_arithmetic<int const>::value << '\n';    cout << "int &: "         << is_arithmetic<int&>::value << '\n';    cout << "int *: "         << is_arithmetic<int*>::value << '\n';    cout << "long int: "         << is_arithmetic<long int>::value << '\n';      return 0;}
is_arithmetic:
GFG: false
int: true
int const: true
int &: false
int *: false
long int: true

Program 3:
// C++ program to illustrate// is_arithmetic template  #include <iostream>#include <type_traits>using namespace std;  // main programint main(){    cout << boolalpha;    cout << "is_arithmetic:" << '\n';    cout << "float: "         << is_arithmetic<float>::value << '\n';    cout << "float const: "         << is_arithmetic<float const>::value << '\n';    cout << "float &: "         << is_arithmetic<float&>::value << '\n';    cout << "float *: "         << is_arithmetic<float*>::value << '\n';    cout << "double: "         << is_arithmetic<double>::value << '\n';    cout << "double const: "         << is_arithmetic<double const>::value << '\n';    cout << "double &: "         << is_arithmetic<double&>::value << '\n';    cout << "double *: "         << is_arithmetic<double*>::value << '\n';      return 0;}
is_arithmetic:
float: true
float const: true
float &: false
float *: false
double: true
double const: true
double &: false
double *: false

Program 4:
// C++ program to illustrate// is_arithmetic template  #include <iostream>#include <type_traits>using namespace std;  // main programint main(){    cout << boolalpha;    cout << "is_arithmetic:" << '\n';    cout << "char: "         << is_arithmetic<char>::value << '\n';    cout << "char const: "         << is_arithmetic<char const>::value << '\n';    cout << "char &: "         << is_arithmetic<char&>::value << '\n';    cout << "char *: "         << is_arithmetic<char*>::value << '\n';      return 0;}
is_arithmetic:
char: true
char const: true
char &: false
char *: false

rajasethupathi
cpp-template
C++
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Operator Overloading in C++
Polymorphism in C++
Sorting a vector in C++
Friend class and function in C++
Pair in C++ Standard Template Library (STL)
std::string class in C++
Queue in C++ Standard Template Library (STL)
Inline Functions in C++
Array of Strings in C++ (5 Different Ways to Create)
Convert string to char array in C++