| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
move_iterator::move_iterator | ||||
| Non-member functions | ||||
(until C++20)(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
(C++11) |
move_iterator(); | (1) | (constexpr since C++17) |
explicit move_iterator( iterator_type x); | (2) | (constexpr since C++17) |
template<class U> move_iterator(const move_iterator<U>& other); | (3) | (constexpr since C++17) |
Constructs a newmove_iterator.
| Overload | current |
|---|---|
| (1) | value-initialized |
| (2) | initialized withx(until C++20)std::move(x)(since C++20) |
| (3) | initialized withother.current |
If | (until C++20) |
This overload participates in overload resolution only ifstd::is_same_v<U, Iter> isfalse andstd::convertible_to<const U&, Iter> is modeled. | (since C++20) |
Contents |
| x | - | iterator to adapt |
| other | - | iterator adaptor to copy |
| This section is incomplete Reason: no example |
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3435 | C++20 | overload(3) was not constrained | constrained |
assigns anothermove_iterator(public member function)[edit] | |
(C++11) | creates astd::move_iterator of type inferred from the argument (function template)[edit] |