当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ is_arithmetic用法及代码示例


在本文中,我们将讨论 C++ STL 中 std::is_arithmetic 模板的工作、语法和示例。

is_arithmetic 模板有助于检查给定的类 T 是否属于算术类型。

什么是算术类型?

算术类型由两种类型组成,即

  • integral types- 在这里,我们定义了整数。以下是整数类型的类型 -

    • char
    • bool
    • int
    • long
    • short
    • long long
    • wchar_t
    • char16_t
    • char32_t
  • floating point types− 这些可以容纳小数部分。以下是浮点类型。

    • Float
    • Double
    • Long double

因此,模板 is_arithmatic 会检查定义的类型 T 是否为算​​术类型,并相应地返回 true 或 false。

用法

template <class T> is_arithmetic;

参数

一个模板只能有一个 T 类型的参数,并检查该参数是否为算术类型。

返回值

此函数返回一个 bool 类型的值,该值可以是 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

相关用法


注:本文由纯净天空筛选整理自Sunidhi Bansal大神的英文原创作品 is_arithmetic Template in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。