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