21 Metaprogramming library [meta]

21.4 Reflection [meta.reflection]

21.4.16 Reflection type traits [meta.reflection.traits]

Table 64 — Reflection type traits [tab:meta.reflection.traits]
Signature and Return Type
Returns
bool meta​::​UNARY(info type);
bool meta​::​UNARY_type(info type);
std​::​UNARY_v<T>, where T is the type or type alias represented by type
bool meta​::​BINARY(info type);
bool meta​::​BINARY_type(info type);
std​::​BINARY_v<T1, T2>, where T1 and T2 are the types or type aliases represented by t1 and t2, respectively
template<reflection_range R>
bool meta​::​VARIADIC_type(info type, R&& args);
std​::​VARIADIC_v<T, U...>, where T is the type or type alias represented by type and U... is the pack of types or type aliases whose elements are represented by the corresponding elements of args
template<reflection_range R>
bool meta​::​VARIADIC_type(info t1, info t2, R&& args);
std​::​VARIADIC_v<T1, T2, U...>, where T1 and T2 are the types or type aliases represented by t1 and t2, respectively, and U... is the pack of types or type aliases whose elements are represented by the corresponding elements of args
info meta​::​UNARY(info type);
info meta​::​UNARY(info type);
A reflection representing the type denoted by std​::​UNARY_t<T>, where T is the type or type alias represented by type
template<reflection_range R>
info meta​::​VARIADIC(R&& args);
A reflection representing the type denoted by std​::​VARIADIC_t<T...>, where T... is the pack of types or type aliases whose elements are represented by the corresponding elements of args
template<reflection_range R>
info meta​::​VARIADIC(info type, R&& args);
A reflection representing the type denoted by std​::​VARIADIC_t<T, U...>, where T is the type or type alias represented by type and U... is the pack of types or type aliases whose elements are represented by the corresponding elements of args