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

ฟังก์ชัน is_trivial ใน C++


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

is_trivial เป็นเทมเพลตที่อยู่ภายใต้ไฟล์ส่วนหัว เทมเพลตนี้ใช้เพื่อตรวจสอบว่าประเภท T ที่กำหนดเป็นคลาสที่ไม่สำคัญหรือไม่

ประเภทคลาสไม่สำคัญใน C++ คืออะไร

เราเรียกประเภทว่าเป็นประเภท Trivial เมื่อข้อมูลถูกจัดเก็บในลักษณะต่อเนื่องกัน และยอมรับเฉพาะการเริ่มต้นเริ่มต้นแบบคงที่เท่านั้น โดยจะรวมอาร์เรย์ประเภท คลาส และประเภทสเกลาร์ได้ทุกประเภท

คลาส Trivial เป็นคลาสที่สร้างโดยค่าเริ่มต้นเล็กน้อยและสามารถคัดลอกได้เล็กน้อย มีบางประเด็นที่ควรได้รับการดูแลในขณะที่ทำให้ชั้นเรียนเป็นเรื่องเล็กน้อย -

  • ต้องไม่มีสมาชิกเสมือนหรือคลาสฐานเสมือน
  • ไม่มีสมาชิกที่ไม่คงที่
  • ไม่มีคลาสเบสที่มีสมาชิกที่ไม่คงที่

ไวยากรณ์

template <class T> is_trivial;

พารามิเตอร์

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

คืนค่า

ส่งคืนค่าบูลีนเป็นค่าจริงหากประเภทที่กำหนดเป็นประเภทคลาสเล็กน้อย และเป็นเท็จหากประเภทที่ระบุไม่ใช่ประเภทคลาสเล็กน้อย

ตัวอย่าง

Input: class A {};
   class B { B() {} };
   class D { virtual void fn() {} };
   cout<<”A: ”<<is_trivial<A>;
   cout<<”B: ”<<is_trivial<B>;
   cout<<”D: ”<<is_trivial<D>;
Output:
A: True
B: False
D: False

ตัวอย่าง

#include <iostream>
#include <type_traits>
using namespace std;
class TP_1 {
};
class TP_2 {
   TP_2(){
   }
};
class TP_3 : TP_2 {
};
class TP_4 {
   virtual void dummy() {
   }
};
int main() {
   std::cout << std::boolalpha; //Returns value in boolean type
   std::cout << "TP_1: " << std::is_trivial<TP_1>::value << endl;
   std::cout << "TP_2: " << std::is_trivial<TP_2>::value << endl;
   std::cout << "TP_3: " << std::is_trivial<TP_3>::value << endl;
   std::cout << "TP_4: " << std::is_trivial<TP_4>::value << endl;
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

TP_1: true
TP_2: false
TP_3: false
TP_4: false