C++ named requirements: UnaryTypeTrait (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UnaryTypeTrait 는 템플릿 타입 매개변수의 속성을 std::integral_constant (일반적으로 std::bool_constant ) 특수화로 기술하는 클래스 템플릿입니다.
요구사항
- DefaultConstructible 와 CopyConstructible 을 만족합니다.
- 하나의 템플릿 타입 매개변수를 가집니다 (추가 템플릿 매개변수는 선택적이며 허용됩니다).
- std::integral_constant 특수화로부터 공개적이고 명확하게 파생되며, 이를 기본 특성 이라고 합니다.
- 기본 특성 의 멤버 이름은 숨겨지지 않으며 명확하게 사용 가능합니다.
표준 라이브러리
다음 type traits 들은 모두 UnaryTypeTrait 을 만족합니다:
다음 표준 라이브러리 클래스 템플릿들도 UnaryTypeTrait 를 만족합니다.
|
(C++11)
|
지정된 타입과 값의 컴파일 타임 상수
(클래스 템플릿) |
|
(C++17)
|
논리 NOT 메타함수
(클래스 템플릿) |
|
(C++11)
|
tuple
의 크기를 얻음
|
|
(C++11)
|
array
의 크기를 얻음
(클래스 템플릿 특수화) |
|
(C++11)
|
pair
의 크기를 얻음
(클래스 템플릿 특수화) |
|
(C++17)
|
컴파일 타임에
variant
의 대체 타입 목록 크기를 얻음
(클래스 템플릿) (변수 템플릿) |
|
(C++11)
|
객체가
std::bind
표현식이거나 그렇게 사용될 수 있음을 나타냄
(클래스 템플릿) |
|
(C++11)
|
객체가 표준 플레이스홀더이거나 그렇게 사용될 수 있음을 나타냄
(클래스 템플릿) |
|
(C++17)
|
클래스가 실행 정책을 나타내는지 여부를 테스트
(클래스 템플릿) |