[array.creation] (original) (raw)

23 Containers library [containers]

23.3 Sequence containers [sequences]

23.3.3 Class template array [array]

23.3.3.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<remove_cv_t<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_constructible_v<remove_cv_t<T>, T> is true.

Preconditions: T meets the Cpp17MoveConstructible requirements.

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