23 General utilities library [utilities]

23.15 Metaprogramming and type traits [meta]

23.15.4 Unary type traits [meta.unary] Composite type traits [meta.unary.comp]

These templates provide convenient compositions of the primary type categories, corresponding to the descriptions given in section [basic.types].
For any given type T, the result of applying one of these templates to T and to cv T shall yield the same result.
Table 41 — Composite type category predicates
template <class T>
struct is_­reference;
T is an lvalue reference or an rvalue reference
template <class T>
struct is_­arithmetic;
template <class T>
struct is_­fundamental;
template <class T>
struct is_­object;
T is an object type
template <class T>
struct is_­scalar;
template <class T>
struct is_­compound;
template <class T>
struct is_­member_­pointer;
T is a pointer to non-static data member or non-static member function