Defined in header <memory> | ||
---|---|---|
template< class InputIt, class ForwardIt > ForwardIt uninitialized_move( InputIt first, InputIt last, ForwardIt d_first ); | (1) | (since C++17) |
template< class ExecutionPolicy, class InputIt, class ForwardIt > ForwardIt uninitialized_move( ExecutionPolicy&& policy, InputIt first, InputIt last, ForwardIt d_first ); | (2) | (since C++17) |
[first, last)
to an uninitialized memory area beginning at d_first
as if by
[first, last)
are left in a valid but unspecified state, and the objects already constructed are destroyed in an unspecified order.policy
. This overload does not participate in overload resolution unless std::is_execution_policy_v<std::decay_t<ExecutionPolicy>>
is truefirst, last | - | the range of the elements to move |
d_first | - | the beginning of the destination range |
policy | - | the execution policy to use. See execution policy for details. |
Type requirements | ||
-InputIt must meet the requirements of LegacyInputIterator. |
||
-ForwardIt must meet the requirements of LegacyForwardIterator. |
||
-No increment, assignment, comparison, or indirection through valid instances of ForwardIt may throw exceptions. |
Iterator to the element past the last element moved.
Linear in the distance between first
and last
.
The overload with a template parameter named ExecutionPolicy
reports errors as follows:
ExecutionPolicy
is one of the standard policies, std::terminate
is called. For any other ExecutionPolicy
, the behavior is implementation-defined. std::bad_alloc
is thrown. copies a range of objects to an uninitialized area of memory (function template) |
|
(C++17) | moves a number of objects to an uninitialized area of memory (function template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/memory/uninitialized_move