is_arithmetic Template in C++
Last Updated :
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:
#include <iostream>
#include <type_traits>
using namespace std;
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:
#include <iostream>
#include <type_traits>
using namespace std;
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:
#include <iostream>
#include <type_traits>
using namespace std;
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:
#include <iostream>
#include <type_traits>
using namespace std;
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
Share your thoughts in the comments
Please Login to comment...