ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของเทมเพลต std::is_trivial ใน C++ STL
is_trivial เป็นเทมเพลตที่อยู่ภายใต้ไฟล์ส่วนหัว
ประเภทคลาสไม่สำคัญใน 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