void swap(array& y) noexcept(noexcept(swap(declval<T&>(), declval<T&>())));
Effects: swap_ranges(begin(), end(), y.begin())
Throws: Nothing unless one of the element-wise swap calls throws an exception.
Note: Unlike the swap function for other containers, array::swap takes linear time, may exit via an exception, and does not cause iterators to become associated with the other container.