23 General utilities library [utilities]

23.15 Metaprogramming and type traits [meta]

23.15.4 Unary type traits [meta.unary]

23.15.4.1 Primary type categories [meta.unary.cat]

Категории основных типов соответствуют описаниям, приведенным в разделе [basic.types] стандарта C ++.

Для любого данного типа Tрезультат применения одного из этих шаблонов к T и к cv T должен дать одинаковый результат.

[ Note: Для любого данного типа Tровно одна из категорий первичного типа имеет value член, оцениваемый как true. ]end note

Таблица 40 - Предикаты категории первичного типа
ШаблонСостояниеКомментарии
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])