is_arithmetic Template in C++
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 program class 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; } |
Output:
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 program class 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; } |
Output:
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 program int 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; } |
Output:
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 program int 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; } |
Output:
is_arithmetic: char: true char const: true char &: false char *: false
Please Login to comment...