[array.creation] (original) (raw)

22 Containers library [containers]

22.3 Sequence containers [sequences]

22.3.7 Class template array [array]

22.3.7.6 Array creation functions [array.creation]

template<class T, size_t N> constexpr array<remove_cv_t<T>, N> to_array(T (&a)[N]);

Mandates: is_­array_­v<T> is false andis_­constructible_­v<T, T&> is true.

Preconditions: T meets the Cpp17CopyConstructible requirements.

Returns: {{ a[0], …, a[N - 1] }}.

template<class T, size_t N> constexpr array<remove_cv_t<T>, N> to_array(T (&&a)[N]);

Mandates: is_­array_­v<T> is false andis_­move_­constructible_­v<T> is true.

Preconditions: T meets the Cpp17MoveConstructible requirements.

Returns: {{ std​::​move(a[0]), …, std​::​move(a[N - 1]) }}.