An array meets all of the requirements
of a container ([container.reqmts]) and
of a reversible container ([container.rev.reqmts]),
except that a default
constructed array object is not empty if N>0.
Descriptions are provided here
only for operations on array that are not described in
one of these tables and
for operations where there is additional semantic information.
Two values a1 and a2 of type array<T, N>
are template-argument-equivalent if and only if
each pair of corresponding elements in a1 and a2
are template-argument-equivalent.