21 Metaprogramming library [meta]

21.3 Metaprogramming and type traits [type.traits]

21.3.6 Unary type traits [meta.unary]

21.3.6.1 General [meta.unary.general]

Subclause [meta.unary] contains templates that may be used to query the properties of a type at compile time.
Each of these templates shall be a Cpp17UnaryTypeTrait with a base characteristic of true_type if the corresponding condition is true, otherwise false_type.
Let ELEMS-OF(T) be the parameter pack get<N>(declval<T>()), where N is the pack of size_t template arguments of the specialization of index_sequence denoted by make_index_sequence<tuple_size_v<remove_reference_t<T>>>.