Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::move_iterator< I > Struct Template Reference

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

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_iteratoroperator++ ()
 
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

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

Member Data Documentation

◆ I

template<typename I>
I ranges::move_iterator< I >::I
Initial value:
{
current_ = i.base()