21 Metaprogramming library [meta]

21.2 Compile-time integer sequences [intseq]

21.2.4 Structured binding support [intseq.binding]

template<class T, T... Values> struct tuple_size<integer_sequence<T, Values...>> : integral_constant<size_t, sizeof...(Values)> { }; template<size_t I, class T, T... Values> struct tuple_element<I, integer_sequence<T, Values...>> { using type = T; }; template<size_t I, class T, T... Values> struct tuple_element<I, const integer_sequence<T, Values...>> { using type = T; };
Mandates: I < sizeof...(Values).
template<size_t I, class T, T... Values> constexpr T get(integer_sequence<T, Values...>) noexcept;
Mandates: I < sizeof...(Values).
Returns: Values...[I].