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

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 >
requires convertible_to<O, I>
 move_iterator (move_iterator< O > const &i)
 
auto operator* () 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
 
const 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 >
requires convertible_to<O, I>
move_iteratoroperator= (move_iterator< O > const &i)
 
auto operator[] (difference_type n) const -> reference
 

Friends

template<typename I2 >
requires equality_comparable_with<I, 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 >
requires sized_sentinel_for<I, I2>
auto operator- (move_iterator const &x, move_iterator< I2 > const &y) -> iter_difference_t< I2 >
 
template<typename I2 >
requires totally_ordered_with<I, I2>
auto operator< (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 
template<typename I2 >
requires totally_ordered_with<I, I2>
auto operator<= (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 
template<typename I2 >
requires equality_comparable_with<I, I2>
auto operator== (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 
template<typename I2 >
requires totally_ordered_with<I, I2>
auto operator> (move_iterator const &x, move_iterator< I2 > const &y) -> bool
 
template<typename I2 >
requires totally_ordered_with<I, I2>
auto operator>= (move_iterator const &x, move_iterator< I2 > const &y) -> bool