26 Containers library [containers]

26.3 Sequence containers [sequences]

26.3.7 Class template array [array]

26.3.7.2 array constructors, copy, and assignment [array.cons]

The conditions for an aggregate ([dcl.init.aggr]) shall be met.
Class array relies on the implicitly-declared special member functions ([class.ctor], [class.dtor], and [class.copy]) to conform to the container requirements table in [container.requirements].
In addition to the requirements specified in the container requirements table, the implicit move constructor and move assignment operator for array require that T be MoveConstructible or MoveAssignable, respectively.
template<class T, class... U> array(T, U...) -> array<T, 1 + sizeof...(U)>;
Requires: (is_­same_­v<T, U> && ...) is true.
Otherwise the program is ill-formed.