[move.iter.cons] (original) (raw)

23 Iterators library [iterators]

23.5 Iterator adaptors [predef.iterators]

23.5.3 Move iterators and sentinels [move.iterators]

23.5.3.4 Construction and assignment [move.iter.cons]

constexpr move_iterator();

Effects: Constructs a move_­iterator, value-initializingcurrent.

Iterator operations applied to the resulting iterator have defined behavior if and only if the corresponding operations are defined on a value-initialized iterator of type Iterator.

constexpr explicit move_iterator(Iterator i);

Effects: Constructs a move_­iterator, initializingcurrent with std​::​move(i).

template<class U> constexpr move_iterator(const move_iterator<U>& u);

Mandates: U is convertible to Iterator.

Effects: Constructs a move_­iterator, initializingcurrent with u.base().

template<class U> constexpr move_iterator& operator=(const move_iterator<U>& u);

Mandates: U is convertible to Iterator.

Effects: Assigns u.base() tocurrent.