Trait |
Effect |
is_reference<T> |
Lvalue 또는 rvalue 레퍼런스 |
is_member_pointer<T> |
비정적 맴버에대한 포인터 |
is_arithmetic<T> |
정수형(bool, 문자형 포함) 또는 부동소수점 타입 |
is_fundamental<T> |
void, 정수형(bool, 문자형 포함) 또는 부동소수점, std::nullptr_t |
is_scalar<T> |
정수형(bool, 문자형 포함) 또는 부동소수점, 열거형, 포인터, 맴버 포인터, std::nullptr_t |
is_object<T> |
void, 함수, 레퍼런스를 제외한 모든 타입 |
is_compound<T> |
is_fundermental<T>의 반대: 배열, 열거형, 공용체, 클래스 함수, 레퍼런스, 포인터, 맴버 포인터 |
std::is_member_pointer<T>::value
= !(is_member_object_pointer_v<T> || is_member_function_pointer_v<T>)
std::is_arithmetic<T>::value
= is_intergral_v<T> || is_floating_pointer_v<T>
std::is_fundamental<T>::value
= is_arithmetic_v<T> || is_void_v<T> || is_null_pointer_v<T>
= !is_compound_v<T>
std::is_scalar<T>::value
= is_arithmetic_v<T> || is_enum_v<T> || is_pointer_v<T> || is_member_pointer_v<T> || is_null_pointer_v<T>
std::is_object<T>::value
= is_scalar_v<T> || is_array_v<T> || is_class_v<T> || is_union_v<T>
= !(is_function_v<T> || is_reference_v<T> || is_void_v<T>)
std::is_compound<T>::value
= !is_fundamental_v<T>
= is_enum_v<T> || is_array_v<T> || is_class_v<T> || is_union_v<T>
|| is_reference_v<T> || is_pointer_v<T> || is_member_pointer_v<T>
|| is_function_v<T>