블로그는 나의 힘!
[ Programing ]/C++2020. 9. 9. 20:29

type_traits

컴파일에 필요한 타입 정보를 얻기 위한 클래스 정의 모음.

 


원본 링크 : http://www.cplusplus.com/reference/type_traits/

 

- C++ Reference

 

www.cplusplus.com




[ 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
Posted by Mister_Q