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

Public Types

using difference_type = difference_type_t< I >
 
using iterator_category = input_iterator_tag
 
using iterator_type = I
 
using reference = rvalue_reference_t< I >
 
using value_type = value_type_t< I >
 

Public Member Functions

base () const
 
 move_iterator (I i)
 
template<typename O , requires = (ConvertibleTo<O, I>())>
 move_iterator (move_iterator< O > const &i)
 
auto operator* () const noexcept(noexcept(decltype(iter_move(current_))(iter_move(current_)))) -> decltype(iter_move(current_))
 
move_iterator operator+ (difference_type n) const
 
move_iteratoroperator++ ()
 
void operator++ (int)
 
move_iterator operator++ (int)
 
move_iteratoroperator+= (difference_type n)
 
move_iterator operator- (difference_type n) const
 
move_iteratoroperator-- ()
 
move_iterator operator-- (int)
 
move_iteratoroperator-= (difference_type n)
 
template<typename O , requires = (ConvertibleTo<O, I>())>
move_iteratoroperator= (move_iterator< O > const &i)
 
reference operator[] (difference_type n) const
 

Member Function Documentation

◆ operator+()

template<typename I >
move_iterator ranges::v3::move_iterator< I >::operator+ ( difference_type  n) const
Precondition
RandomAccessIterator<I>()

◆ operator++() [1/2]

template<typename I >
void ranges::v3::move_iterator< I >::operator++ ( int  )
Precondition
!ForwardIterator()

◆ operator++() [2/2]

template<typename I >
move_iterator ranges::v3::move_iterator< I >::operator++ ( int  )
Precondition
ForwardIterator<I>()

◆ operator+=()

template<typename I >
move_iterator& ranges::v3::move_iterator< I >::operator+= ( difference_type  n)
Precondition
RandomAccessIterator<I>()

◆ operator-()

template<typename I >
move_iterator ranges::v3::move_iterator< I >::operator- ( difference_type  n) const
Precondition
RandomAccessIterator<I>()

◆ operator--() [1/2]

template<typename I >
move_iterator& ranges::v3::move_iterator< I >::operator-- ( )
Precondition
BidirectionalIterator<I>()

◆ operator--() [2/2]

template<typename I >
move_iterator ranges::v3::move_iterator< I >::operator-- ( int  )
Precondition
BidirectionalIterator<I>()

◆ operator-=()

template<typename I >
move_iterator& ranges::v3::move_iterator< I >::operator-= ( difference_type  n)
Precondition
RandomAccessIterator<I>()

◆ operator[]()

template<typename I >
reference ranges::v3::move_iterator< I >::operator[] ( difference_type  n) const
Precondition
RandomAccessIterator<I>()