Computer >> Máy Tính >  >> Lập trình >> C ++

Mẫu is_arithmetic trong C ++

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của mẫu std ::is_arithmetic trong C ++ STL.

Mẫu is_arithmetic giúp kiểm tra xem lớp T đã cho có thuộc kiểu số học hay không.

Kiểu số học là gì?

Kiểu số học bao gồm hai kiểu, đó là

  • loại tích phân - Trong điều này, chúng tôi xác định các số nguyên. Sau đây là các loại kiểu tích phân -

    • char
    • bool
    • int
    • dài
    • ngắn
    • dài lâu
    • wchar_t
    • char16_t
    • char32_t
  • loại dấu phẩy động - Những thứ này có thể chứa các bộ phận phân số. Sau đây là loại dấu phẩy động.

    • Phao nước
    • Nhân đôi
    • Đôi dài

Vì vậy, template is_arithmatic kiểm tra kiểu đã xác định T có phải là kiểu số học hay không và trả về true hoặc false tương ứng.

Cú pháp

template <class T> is_arithmetic;

Tham số

Một mẫu chỉ có thể có một tham số thuộc loại T và kiểm tra tham số có thuộc loại số học hay không.

Giá trị trả về

Hàm này trả về một giá trị kiểu bool, có thể là true hoặc false. Nó trả về true nếu kiểu đã cho là số học và false nếu kiểu không phải là số học.

Ví dụ

Input: is_arithmetic<bool>::value;
Output: True

Input: is_arithmetic<class_a>::value;
Output: false

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

checking for is_arithmetic template:
TP class : false
For Bool value: true
For long value : true
For Short value : true

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

checking for is_arithmetic template:
Int : true
Char : true
Float : true
Double : true
Int * : float
Char *: float
Float *: float
Double *: float