ranges::move_iterator< I > Struct Template Reference
Iterator

## Friends

template<typename I2 >
auto | operator!= (move_iterator const &x, move_iterator< I2 > const &y) -> bool requires equality_comparable_with< I, I2 >
CPP_broken_friend_member friend auto | operator+ (iter_difference_t< I > n, move_iterator const &x) -> move_iterator requires random_access_iterator< I >
template<typename I2 >
auto | operator- (move_iterator const &x, move_iterator< I2 > const &y) -> iter_difference_t< I2 > requires sized_sentinel_for< I, I2 >
template<typename I2 >
auto | operator< (move_iterator const &x, move_iterator< I2 > const &y) -> bool requires totally_ordered_with< I, I2 >
template<typename I2 >
auto | operator<= (move_iterator const &x, move_iterator< I2 > const &y) -> bool requires totally_ordered_with< I, I2 >
template<typename I2 >
auto | operator== (move_iterator const &x, move_iterator< I2 > const &y) -> bool requires equality_comparable_with< I, I2 >
template<typename I2 >
auto | operator> (move_iterator const &x, move_iterator< I2 > const &y) -> bool requires totally_ordered_with< I, I2 >
template<typename I2 >
auto | operator>= (move_iterator const &x, move_iterator< I2 > const &y) -> bool requires totally_ordered_with< I, I2 >

## Public Types

using | difference_type = iter_difference_t< I >
using | iterator_category = std::input_iterator_tag
using | iterator_type = I
using | reference = iter_rvalue_reference_t< I >
using | value_type = iter_value_t< I >

## Public Member Functions

I | base () const
| move_iterator (I i)
template<typename O >
| move_iterator (move_iterator< O > const &i) requires convertible_to< O
auto | operator* () return iter_move(current_) noexcept(noexcept(decltype(CPP_AUTO_FUN_RETURNS_const)(CPP_AUTO_FUN_RETURNS_const))) -> decltype(CPP_AUTO_FUN_RETURNS_const)
auto | operator+ (difference_type n) const -> move_iterator requires random_access_iterator< I >
move_iterator & | operator++ ()
auto | operator++ (int) -> void requires(!forward_iterator< I >)
auto | operator++ (int) -> move_iterator requires forward_iterator< I >
auto | operator+= (difference_type n) -> move_iterator &requires random_access_iterator< I >
auto | operator- (difference_type n) const -> move_iterator requires random_access_iterator< I >
auto | operator-- () -> move_iterator &requires forward_iterator< I >
auto | operator-- (int) -> move_iterator requires bidirectional_iterator< I >
auto | operator-= (difference_type n) -> move_iterator &requires random_access_iterator< I >
auto | operator[] (difference_type n) const -> reference requires random_access_iterator< I >

## Public Attributes

I | __pad0__: current_(i.base()) {} template<typename O> auto operator=(move_iterator<O> const & i) -> move_iterator & requires convertible_to<O
I | I
return * | this

## Member Data Documentation

## I

template<typename I>

I ranges::move_iterator< I >::I

Initial value:
{
current_ = i.base()