Категории основных типов соответствуют описаниям, приведенным в разделе [basic.types] стандарта C ++.
Для любого данного типа Tрезультат применения одного из этих шаблонов к T и к cv T должен дать одинаковый результат.
[ Note: Для любого данного типа Tровно одна из категорий первичного типа имеет value член, оцениваемый как true. ] — end note
Шаблон | Состояние | Комментарии |
template <class T> struct is_void; | T является void | |
template <class T> struct is_null_pointer; | T есть nullptr_t ([basic.fundamental]) | |
template <class T> struct is_integral; | T является integral type | |
template <class T> struct is_floating_point; | T это floating-point type | |
template <class T> struct is_array; | T является типом массива ([basic.compound]) известной или неизвестной степени | Шаблон класса array не является типом массива. |
template <class T> struct is_pointer; | T это pointer type | Включает указатели на функции, но не указатели на нестатические члены. |
template <class T> struct is_lvalue_reference; | T является lvalue reference type | |
template <class T> struct is_rvalue_reference; | T является rvalue reference type | |
template <class T> struct is_member_object_pointer; | T указатель на нестатический член данных | |
template <class T> struct is_member_function_pointer; | T указатель на нестатическую функцию-член | |
template <class T> struct is_enum; | T это перечислимый тип ([basic.compound]) | |
template <class T> struct is_union; | T тип объединения ([basic.compound]) | |
template <class T> struct is_class; | T тип класса, не являющегося объединением ([basic.compound]) | |
template <class T> struct is_function; | T это функция type ([basic.compound]) |