[array.syn]

# 23 Containers library [[containers]](./#containers)

## 23.3 Sequence containers [[sequences]](sequences#array.syn)

### 23.3.2 Header <array> synopsis [array.syn]

[ð](#header:%3carray%3e)

// mostly freestanding#include <compare> // see [[compare.syn]](compare.syn "17.12.1 Header <compare> synopsis")#include <initializer_list> // see [[initializer.list.syn]](initializer.list.syn "17.11.2 Header <initializer_­list> synopsis")namespace std {// [[array]](array "23.3.3 Class template array"), class template arraytemplate<class T, size_t N> struct array; // partially freestandingtemplate<class T, size_t N>constexpr bool operator==(const array<T, N>& x, const array<T, N>& y); template<class T, size_t N>constexpr *synth-three-way-result*<T>operator<=>(const array<T, N>& x, const array<T, N>& y); // [[array.special]](array.special "23.3.3.4 Specialized algorithms"), specialized algorithmstemplate<class T, size_t N>constexpr void swap(array<T, N>& x, array<T, N>& y) noexcept(noexcept(x.swap(y))); // [[array.creation]](array.creation "23.3.3.6 Array creation functions"), array creation functionstemplate<class T, size_t N>constexpr array<remove_cv_t<T>, N> to_array(T (&a)[N]); template<class T, size_t N>constexpr array<remove_cv_t<T>, N> to_array(T (&&a)[N]); // [[array.tuple]](array.tuple "23.3.3.7 Tuple interface"), tuple interfacetemplate<class T> struct tuple_size; template<size_t I, class T> struct tuple_element; template<class T, size_t N>struct tuple_size<array<T, N>>; template<size_t I, class T, size_t N>struct tuple_element<I, array<T, N>>; template<size_t I, class T, size_t N>constexpr T& get(array<T, N>&) noexcept; template<size_t I, class T, size_t N>constexpr T&& get(array<T, N>&&) noexcept; template<size_t I, class T, size_t N>constexpr const T& get(const array<T, N>&) noexcept; template<size_t I, class T, size_t N>constexpr const T&& get(const array<T, N>&&) noexcept;}
