Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 is_trivial 함수

<시간/>

이 기사에서는 C++ STL에서 std::is_trivial 템플릿의 작동, 구문 및 예제에 대해 논의할 것입니다.

is_trivial은 헤더 파일 아래에 있는 템플릿입니다. 이 템플릿은 주어진 유형 T가 사소한 클래스인지 여부를 확인하는 데 사용됩니다.

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