23 Containers library [containers]

23.3 Sequence containers [sequences]

23.3.2 Class template array [array]

23.3.2.9 Tuple interface to class template array [array.tuple]

template <class T, size_t N> struct tuple_size<array<T, N>> : integral_constant<size_t, N> { };

tuple_element<I, array<T, N> >::type

Requires: I < N. The program is ill-formed if I is out of bounds.

Value: The type T.

template <size_t I, class T, size_t N> constexpr T& get(array<T, N>& a) noexcept;

Requires: I < N. The program is ill-formed if I is out of bounds.

Returns: A reference to the Ith element of a, where indexing is zero-based.

template <size_t I, class T, size_t N> constexpr T&& get(array<T, N>&& a) noexcept;

Effects: Equivalent to return std::move(get<I>(a));

template <size_t I, class T, size_t N> constexpr const T& get(const array<T, N>& a) noexcept;

Requires: I < N. The program is ill-formed if I is out of bounds.

Returns: A const reference to the Ith element of a, where indexing is zero-based.