이 기사에서는 C++ STL에서 std::is_trivial 템플릿의 작동, 구문 및 예제에 대해 논의할 것입니다.
is_trivial은
C++에서 사소한 클래스 유형이란 무엇입니까?
데이터가 연속적인 방식으로 저장되고 정적 기본 초기화만 허용하는 경우 유형을 Trivial 유형이라고 합니다. 모든 유형, 클래스 및 스칼라 유형의 배열을 포함할 수 있습니다.
Trivial 클래스는 기본적으로 생성되고 간단하게 복사할 수 있는 클래스입니다. 클래스를 사소하게 만들 때 주의해야 할 몇 가지 사항이 있습니다. -
- 가상 멤버나 가상 기본 클래스가 없어야 합니다.
- 비정적 회원이 없습니다.
- 비정적 멤버가 있는 기본 클래스 없음
구문
template <class T> is_trivial;
매개변수
템플릿은 T 유형의 매개변수만 가질 수 있으며 주어진 유형이 trivial 유형 클래스인지 여부를 확인합니다.
반환 값
Boolean 값을 반환하고, 주어진 유형이 사소한 클래스 유형이면 true를 반환하고, 주어진 유형이 사소한 클래스 유형이 아니면 false를 반환합니다.
예시
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