Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เทมเพลต is_arithmetic ใน C++


ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่าง std::is_arithmetic template ใน C++ STL

เทมเพลต is_arithmetic ช่วยตรวจสอบว่าคลาส T ที่กำหนดเป็นประเภทเลขคณิตหรือไม่

ประเภทเลขคณิตคืออะไร

ประเภทเลขคณิตประกอบด้วยสองประเภทคือ

  • ประเภทอินทิกรัล − ในที่นี้ เรากำหนดจำนวนเต็ม ต่อไปนี้เป็นประเภทของอินทิกรัล -

    • ถ่าน
    • บูล
    • int
    • ยาว
    • สั้น
    • ยาวยาว
    • wchar_t
    • char16_t
    • char32_t
  • ประเภทจุดลอยตัว − สิ่งเหล่านี้สามารถเก็บชิ้นส่วนที่เป็นเศษส่วนได้ ต่อไปนี้เป็นประเภทของจุดลอยตัว

    • ลอย
    • ดับเบิ้ล
    • ยาวสองเท่า

ดังนั้น template is_arithmatic จะตรวจสอบว่าประเภทที่กำหนด T เป็นประเภทเลขคณิตหรือไม่และคืนค่าเป็นจริงหรือเท็จตามลำดับ

ไวยากรณ์

template <class T> is_arithmetic;

พารามิเตอร์

เทมเพลตสามารถมีพารามิเตอร์ประเภท T ได้เพียงตัวเดียวเท่านั้น และตรวจสอบว่าพารามิเตอร์นั้นเป็นประเภทเลขคณิตหรือไม่

คืนค่า

ฟังก์ชันนี้ส่งคืนค่าประเภทบูลที่สามารถเป็นจริงหรือเท็จ คืนค่า จริง หากประเภทที่กำหนดเป็นเลขคณิต และเป็นเท็จ หากประเภทนั้นไม่ใช่เลขคณิต

ตัวอย่าง

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