Namespaces
Variants

C++ named requirements: UnaryTypeTrait (since C++11)

From cppreference.net
C++ named requirements

UnaryTypeTrait 는 템플릿 타입 매개변수의 속성을 std::integral_constant (일반적으로 std::bool_constant ) 특수화로 기술하는 클래스 템플릿입니다.

요구사항

  • DefaultConstructible CopyConstructible 을 만족합니다.
  • 하나의 템플릿 타입 매개변수를 가집니다 (추가 템플릿 매개변수는 선택적이며 허용됩니다).
  • std::integral_constant 특수화로부터 공개적이고 명확하게 파생되며, 이를 기본 특성 이라고 합니다.
  • 기본 특성 의 멤버 이름은 숨겨지지 않으며 명확하게 사용 가능합니다.

표준 라이브러리

다음 type traits 들은 모두 UnaryTypeTrait 을 만족합니다:

다음 표준 라이브러리 클래스 템플릿들도 UnaryTypeTrait 를 만족합니다.

지정된 타입과 값의 컴파일 타임 상수
(클래스 템플릿)
(C++17)
논리 NOT 메타함수
(클래스 템플릿)
tuple 의 크기를 얻음


(클래스 템플릿 특수화)

array 의 크기를 얻음
(클래스 템플릿 특수화)
pair 의 크기를 얻음
(클래스 템플릿 특수화)
컴파일 타임에 variant 의 대체 타입 목록 크기를 얻음
(클래스 템플릿) (변수 템플릿)
객체가 std::bind 표현식이거나 그렇게 사용될 수 있음을 나타냄
(클래스 템플릿)
객체가 표준 플레이스홀더이거나 그렇게 사용될 수 있음을 나타냄
(클래스 템플릿)
클래스가 실행 정책을 나타내는지 여부를 테스트
(클래스 템플릿)