type_traits
컴파일에 필요한 타입 정보를 얻기 위한 클래스 정의 모음.
원본 링크 : http://www.cplusplus.com/reference/type_traits/
[ Helper classes ]
Function | Explanation | Link |
intergral_constant | 컴파일 타임에 해당 값에 대해 const 기준으로 type_trait | Link |
true_type | bool true 값 인스턴스 화 | Link |
false_type | bool false 값 인스턴스 화 | Link |
[ Type traits ]
* Primary type categories
Function | Explanation | Link |
is_array | 배열 형식 유무 체크 | Link |
is_calss | class 형식 유무 체크 | Link |
is_enum | enum 형식 유무 체크 | Link |
is_floating_point | 실수(부동 소수점) 형식 유무 체크 | Link |
is_function | 함수 형식 유무 체크 | Link |
is_integral | 정수 형식 유무 체크 | Link |
is_lvalue_reference | 왼쪽 레퍼런스 형식 유무 체크 | Link |
is_member_function_pointer | 클래스 멤버 함수 포인터 유무 체크 | Link |
is_member_object_pointer | 클래스 멤버 오브젝트(변수) 포인터 유무 체크 | Link |
is_pointer | 포인터 형식 유무 체크 | Link |
is_rvalue_reference | 오른쪽 레퍼런스 형식 유무 체크 | Link |
is_union | union 형식 유무 체크 | Link |
is_void | void 형식 유무 체크 | Link |
* Composite type categories
Function | Explanation | Link |
is_arithmetic | 레퍼런스 형식 유무 체크 | Link |
is_compound | compound(확장 ex:string) 형식 유무 체크 | Link |
is_fundamental | fundamental(기본) 형식 유무 체크 | Link |
is_member_pointer | 클래스 멤버 포인터 유무 체크 | Link |
is_object | void를 제외한 object 객체 형식 유무 체크 | Link |
is_reference | 레퍼런스 유무 체크 | Link |
is_scalarI | 스칼라(물리적 데이터) 유무 체크 | Link |
* Type properties
Function | Explanation | Link |
is_abstract | 추상(가상) 클래스 유무 체크 | Link |
is_const | 상수 유무 체크 | Link |
is_empty | 비어 있는 객체 유무 체크 | Link |
is_literal_type | constexpr 형식 유무 체크 | Link |
is_pod | POD(Plain Old Data (상속)) 형식 유무 체크 | Link |
is_polymorphic | 가상 함수(다형성) 포함 유무 체크. | Link |
is_signed | 산술(변수 타입 int, float ...) 형식 유무 체크 | Link |
is_standard_layout | 표준 형식(상속x, 가상x) 형식 유무 체크 | Link |
is_trivial | 심플한(최소) 형식 인가 체크 | Link |
is_trivially_copyable | 심플하게 복사 가능한지 유무 체크 | Link |
is_unsigned | unsigned 타입 유무 체크 | Link |
is_volatile | volatile(휘발성) 한정자 타입 유무 체크 | Link |
* Type features
Function | Explanation | Link |
has_virtual_destructor | 가상 소멸자 유무 체크 | Link |
is_assignableIs | 2가지 변수(객체)에 값 할당 가능 유무 체크 | Link |
is_constructible | 변수(객체)에 인자 할당 가능 유무 체크 | Link |
is_copy_assignable | 변수(객체)가 복사 할당 가능 유무 체크 | Link |
is_copy_constructible | 복사 생성자 존재 유무 체크 | Link |
is_destructible | 객체 소멸 가능 유무 체크 | Link |
is_default_constructible | 객체 기본 생성자 존재 유무 체크 | Link |
is_move_assignable | 데이터 이동 가능한지, 오른쪽 레퍼런스 할당 유무 체크 | Link |
is_move_constructible | 이동 가능 유무 체크. (이동 생성자) | Link |
is_trivially_assignable | 2가지 변수(객체)가 할당(상속) 가능 유무 체크 | Link |
is_trivially_constructible | 인자가 심플 선언인지 체크 | Link |
is_trivially_copy_assignable | 2가지 변수(객체)가 복사 할당 여부 가능한지 체크 | Link |
is_trivially_copy_constructible | 2가지 변수(객체)가 심플한 복사가 가능한지 체크 | Link |
is_trivially_destructible | 소멸 가능한지 체크 | Link |
is_trivially_default_constructible | 기본 생성 유무 체크 | Link |
is_trivially_move_assignable | 2가지 변수(객체)가 이동 할당 가능한지 체크 | Link |
is_trivially_move_constructible | 2가지 변수(객체)가 심플한 이동 가능한지 체크 | Link |
is_nothrow_assignable | 2가지 변수(객체)가 할당 가능 유형이고 예외처리 유무 체크 | Link |
is_nothrow_constructible | 인자가 심플 선언 및 예외 처리 유무 체크 | Link |
is_nothrow_copy_assignable | 객체 복사 할당 여부 및 예외처리 유무 체크 | Link |
is_nothrow_copy_constructible | 객체 복사 생성 여부 및 예외처리 유무 체크 | Link |
is_nothrow_destructible | 객체 소멸 여부 및 예외처리 유무 체크 | Link |
is_nothrow_default_constructible | 객체 기본 생성 가능 여부 및 예외처리 유무 체크 | Link |
is_nothrow_move_assignable | 객체 이동 할당 가능 여부 및 예외처리 유무 체크 | Link |
is_nothrow_move_constructible | 객체 심플 이동 가능 여부 및 예외처리 유무 체크 | Link |
* Type relationships
Function | Explanation | Link |
is_base_of | const, volatile 관계 없이 base가 파생 클래스 여부 식별 | Link |
is_convertible | 다른 형식으로 변환 가능한지 체크 | Link |
is_same | 동일한 형식인지 체크 | Link |
* Property queries
Function | Explanation | Link |
alignment_of | 형식 요구 사항에 맞춰 반환 (sizeof) | Link |
extent | Array 범위 얻음 | Link |
rank | Array 순위 얻음 | Link |
[ Type transformations ]
* Const-volatile qualifications
Function | Explanation | Link |
add_const | const 형식 추가 | Link |
add_cv | const volatile 형식 추가 | Link |
add_volatile | volatile 형식 추가 | Link |
remove_const | const 형식 제거 | Link |
remove_cv | const volatile 형식 제거 | Link |
remove_volatile | volatile 형식 제거 | Link |
* Compound type alterations
Function | Explanation | Link |
add_pointer | 포인터(주소) 추가 | Link |
add_lvalue_reference | 왼쪽 레퍼런스 추가 | Link |
add_rvalue_reference | 오른쪽 레퍼런스 추가 | Link |
decay | decay type 형식 지정 | Link |
make_signed | cv 한정자를 유지하며 객체(변수)에 부호 유형을 할당 | Link |
make_unsigned | cv 한정자를 유지하면 객체(변수)에 미부호 유형을 할당 | Link |
remove_all_extents | 모든 배열 범위 제거 | Link |
remove_extent | 배열 범위 제거 | Link |
remove_pointer | 포인터(주소) 제거 | Link |
remove_reference | 레퍼런스 제거 | Link |
underlying_type | 열거형(enum) 기본 형식 지정 | Link |
* Other type generators
Function | Explanation | Link |
aligned_storage | Align에 지정된 POD 유형 storage 호출 | Link |
aligned_union | Align에 지정된 POD 유형 union 호출 | Link |
common_type | 모든 형식을 변환할 수 있는 공통 타입을 호출 | Link |
conditional | cond가 참, 거짓에 따라 T or F를 반환 | Link |
enable_if | cond가 참이면 enale_if::type으로 활성화 | Link |
result_of | ArgType에 나열된 형식의 인자 사용해 Fn호출 결과 반환 | Link |
'[ Programing ] > C++' 카테고리의 다른 글
C++ COleDateTime 현재 시간에서 설정 시간 추가 하기. (0) | 2020.12.23 |
---|---|
SRand() 사이즈. 최대 범위. (0) | 2020.10.12 |
C++ union (0) | 2020.06.05 |
IOCP 선언. (0) | 2020.06.03 |
char - wchar_t 변환 (0) | 2020.04.07 |