template<class T>
struct is_floating_point;
template<class T>
struct is_array;
Class template array ([array])
is not an array type.
template<class T>
struct is_pointer;
Includes pointers to functions
but not pointers to non-static members.
template<class T>
struct is_lvalue_reference;
template<class T>
struct is_rvalue_reference;
template<class T>
struct is_member_object_pointer;
T is a pointer to data member
template<class T>
struct is_member_function_pointer;
T is a pointer to member function
template<class T>
struct is_enum;
template<class T>
struct is_union;
template<class T>
struct is_class;
template<class T>
struct is_function;
template<class T>
struct is_reflection;