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
 
CPP_broken_friend_member friend auto operator+ (iter_difference_t< I > n, move_iterator const &x) -> move_iterator
 
template<typename I2 >
auto operator- (move_iterator const &x, move_iterator< I2 > const &y) -> iter_difference_t< I2 >
 
template<typename I2 >
auto operator< (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 
template<typename I2 >
auto operator<= (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 
template<typename I2 >
auto operator== (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 
template<typename I2 >
auto operator> (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 
template<typename I2 >
auto operator>= (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 

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)
 
auto operator* () const noexcept(noexcept(iter_move(current_))) -> decltype(iter_move(current_))
 
auto operator+ (difference_type n) const -> move_iterator
 
move_iteratoroperator++ ()
 
auto operator++ (int) -> move_iterator
 
auto operator++ (int) -> void
 
auto operator+= (difference_type n) -> move_iterator &
 
auto operator- (difference_type n) const -> move_iterator
 
auto operator-- () -> move_iterator &
 
auto operator-- (int) -> move_iterator
 
auto operator-= (difference_type n) -> move_iterator &
 
template<typename O >
move_iteratoroperator= (move_iterator< O > const &i)
 
auto operator[] (difference_type n) const -> reference
 

Member Function Documentation

◆ operator=()

template<typename I >
template<typename O >
move_iterator& ranges::move_iterator< I >::operator= ( move_iterator< O > const &  i)
Precondition
requires convertible_to<O, I>

Constructor & Destructor Documentation

◆ move_iterator()

template<typename I >
template<typename O >
ranges::move_iterator< I >::move_iterator ( move_iterator< O > const &  i)
Precondition
requires convertible_to<O, I>