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_trivial trong C ++ STL.
is_trivial là một mẫu nằm trong tệp tiêu đề
Loại lớp tầm thường trong C ++ là gì?
Chúng ta nói rằng một kiểu là kiểu Trivial, khi dữ liệu của nó được lưu trữ theo cách liền kề và chỉ chấp nhận khởi tạo mặc định tĩnh. Nó có thể bao gồm các mảng thuộc bất kỳ kiểu nào, các lớp và kiểu vô hướng.
Lớp tầm thường là một lớp được xây dựng mặc định tầm thường và có thể sao chép tầm thường. Có một số điểm cần được lưu ý khi tạo một lớp là tầm thường -
- Nó không được có thành viên ảo hoặc lớp cơ sở ảo.
- Không có thành viên không cố định.
- Không có lớp Cơ sở với các thành viên không tĩnh
Cú pháp
template <class T> is_trivial;
Tham số
Mẫu chỉ có thể có các tham số kiểu T và kiểm tra xem kiểu đã cho có phải là lớp kiểu tầm thường hay không.
Giá trị trả về
Nó trả về giá trị Boolean, true nếu kiểu đã cho là kiểu lớp tầm thường và false nếu kiểu đã cho không phải là kiểu lớp tầm thường.
Ví dụ
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
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
TP_1: true TP_2: false TP_3: false TP_4: false