在本文中,我们将讨论C ++ STL中std::is_arithmetic模板的工作,语法和示例。
is_arithmetic模板有助于检查给定的类T是否为算术类型。
算术类型包括两种类型,分别是
整数类型-在此我们定义整数。以下是整数类型的类型-
char
bool
int
long
short
long long
wchar_t
char16_t
char32_t
浮点类型-这些可以容纳小数部分。以下是浮点类型。
Float
Double
Long double
因此,模板is_arithmatic检查定义的类型T是否为算术类型,并相应地返回true或false。
template <class T> is_arithmetic;
模板只能有一个类型为T的参数,并检查该参数是否为算术类型。
此函数返回布尔类型值,可以为true或false。如果给定类型为算术,则返回true;如果给定类型为非算术,则返回false。
Input: is_arithmetic<bool>::value; Output: True Input: is_arithmetic<class_a>::value; Output: false
#include <iostream> #include <type_traits> using namespace std; class TP { }; int main() { cout << boolalpha; cout << "checking for is_arithmetic template:"; cout << "\nTP class : "<< is_arithmetic<TP>::value; cout << "\n For Bool value: "<< is_arithmetic<bool>::value; cout << "\n For long value : "<< is_arithmetic<long>::value; cout << "\n For Short value : "<< is_arithmetic<short>::value; return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
checking for is_arithmetic template: TP class : false For Bool value: true For long value : true For Short value : true
#include <iostream> #include <type_traits> using namespace std; int main() { cout << boolalpha; cout << "checking for is_arithmetic template:"; cout << "\nInt : "<< is_arithmetic<int>::value; cout << "\nchar : "<< is_arithmetic<char>::value; cout << "\nFloat : "<< is_arithmetic<float>::value; cout << "\nDouble : "<< is_arithmetic<double>::value; cout << "\nInt *: "<< is_arithmetic<int*>::value; cout << "\nchar *: "<< is_arithmetic<char*>::value; cout << "\nFloat *: "<< is_arithmetic<float*>::value; cout << "\nDouble *: "<< is_arithmetic<double*>::value; return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
checking for is_arithmetic template: Int : true Char : true Float : true Double : true Int * : float Char *: float Float *: float Double *: float