std::move_iterator< _Iterator > Class Template Reference

Inherits std::__detail::__move_iter_cat< _Iterator >.

## Public Types

using | difference_type = iter_difference_t< _Iterator >
using | iterator_concept = decltype(_S_iter_concept())
using | iterator_type = _Iterator
using | pointer = _Iterator
using | reference = iter_rvalue_reference_t< _Iterator >
using | value_type = iter_value_t< _Iterator >

## Public Member Functions

template<typename _Iter >
requires constexpr __convertible< _Iter > | move_iterator (const move_iterator< _Iter > &__i)
constexpr | move_iterator (iterator_type __i)
constexpr iterator_type | base () &&
constexpr const iterator_type & | base () const &noexcept
constexpr reference | operator* () const
constexpr move_iterator | operator+ (difference_type __n) const
constexpr move_iterator & | operator++ ()
constexpr move_iterator | operator++ (int)
constexpr void | operator++ (int) requires(!forward_iterator< _Iterator >)
constexpr move_iterator & | operator+= (difference_type __n)
constexpr move_iterator | operator- (difference_type __n) const
constexpr move_iterator & | operator-- ()
constexpr move_iterator | operator-- (int)
constexpr move_iterator & | operator-= (difference_type __n)
constexpr pointer | operator-> () const
template<typename _Iter >
requires __convertible< _Iter > &&constexpr assignable_from< _Iterator &, const _Iter & > move_iterator & | operator= (const move_iterator< _Iter > &__i)
constexpr reference | operator[] (difference_type __n) const

## Friends

constexpr friend iter_rvalue_reference_t< _Iterator > | iter_move (const move_iterator &__i) noexcept(noexcept(ranges::iter_move(__i._M_current)))
template<indirectly_swappable< _Iterator > _Iter2>
constexpr friend void | iter_swap (const move_iterator &__x, const move_iterator< _Iter2 > &__y) noexcept(noexcept(ranges::iter_swap(__x._M_current, __y._M_current)))
template<sized_sentinel_for< _Iterator > _Sent>
constexpr friend iter_difference_t< _Iterator > | operator- (const move_iterator &__x, const move_sentinel< _Sent > &__y)
template<sized_sentinel_for< _Iterator > _Sent>
constexpr friend iter_difference_t< _Iterator > | operator- (const move_sentinel< _Sent > &__x, const move_iterator &__y)
template<sentinel_for< _Iterator > _Sent>
constexpr friend bool | operator== (const move_iterator &__x, const move_sentinel< _Sent > &__y)

## Detailed Description

### template<typename _Iterator>
class std::move_iterator< _Iterator >

Class template move_iterator is an iterator adapter with the same behavior as the underlying iterator except that its dereference operator implicitly converts the value returned by the underlying iterator's dereference operator to an rvalue reference. Some generic algorithms can be called with move iterators to replace copying with moving.

Definition at line 1445 of file bits/stl_iterator.h.

The documentation for this class was generated from the following file:

- bits/stl_iterator.h