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.