cpp/memory/ranges/uninitialized move

@1@ Moves elements from the input range  to the output range  (that is an uninitialized memory area), where  is. @@ The effect is equivalent to:

@@ If an exception is thrown during the initialization then the objects that already constructed in are destroyed in an unspecified order. Also, the objects in that were already moved, are left in a valid but unspecified state.

@2@ Same as, but uses as the first range and  as the second range, as if using  as ,  as ,  as , and  as.

Return value
.

Complexity
Linear in.

Exceptions
The exception thrown on construction of the elements in the destination range, if any.