Move elements out of array in const context

Looking at the implementation of std::array::IntoIter, A by-value iterator, It looks like they move out of the array by notifying the compiler that each element is MaybeUninit, then doing a copy and ensuring the previous copy is never touched again so that the compiler can optimise it to a move.
It also looks like the relevent MaybeUninitare const too, we would just need to use the looping rather than range for the implementation to be const.