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

Friends

variant< I, S > & detail::cidata (common_iterator< I, S > &)
 
variant< I, S > const & detail::cidata (common_iterator< I, S > const &)
 
auto iter_move (const common_iterator &i) noexcept(noexcept(decltype(ranges::iter_move(ranges::get< 0 >(detail::cidata(i))))(ranges::iter_move(ranges::get< 0 >(detail::cidata(i)))))) -> decltype(ranges::iter_move(ranges::get< 0 >(detail::cidata(i))))
 
template<typename I2 , typename S2 , requires = (IndirectlySwappable<I2, I>())>
auto iter_swap (const common_iterator &x, common_iterator< I2, S2 > const &y) noexcept(noexcept(decltype(ranges::iter_swap(ranges::get< 0 >(detail::cidata(x)), ranges::get< 0 >(detail::cidata(y))))(ranges::iter_swap(ranges::get< 0 >(detail::cidata(x)), ranges::get< 0 >(detail::cidata(y)))))) -> decltype(ranges::iter_swap(ranges::get< 0 >(detail::cidata(x)), ranges::get< 0 >(detail::cidata(y))))
 

Public Types

using difference_type = difference_type_t< I >
 

Public Member Functions

 common_iterator (I i)
 
 common_iterator (S s)
 
template<typename I2 , typename S2 , requires = (ConvertibleTo<I2, I>() && ConvertibleTo<S2, S>())>
 common_iterator (common_iterator< I2, S2 > const &that)
 
reference_t< I > operator* () noexcept(noexcept(decltype(*ranges::get< 0 >(data_))(*ranges::get< 0 >(data_))))
 
template<typename I2 = I, requires = (Readable<I2 const>())>
reference_t< I > operator* () const noexcept(noexcept(decltype(*static_cast< I2 const &>(ranges::get< 0 >(data_)))(*static_cast< I2 const &>(ranges::get< 0 >(data_)))))
 
common_iteratoroperator++ ()
 
auto operator++ (int) noexcept(noexcept(decltype(ranges::get< 0 >(data_)++)(ranges::get< 0 >(data_)++))) -> decltype(ranges::get< 0 >(data_)++)
 
common_iterator operator++ (int)
 
template<typename J = I, requires = (Readable<J>())>
auto operator-> () const noexcept(noexcept(decltype(common_iterator::operator_arrow_((J const &) ranges::get< 0 >(data_), 42))(common_iterator::operator_arrow_((J const &) ranges::get< 0 >(data_), 42)))) -> decltype(common_iterator::operator_arrow_((J const &) ranges::get< 0 >(data_), 42))
 
template<typename I2 , typename S2 , requires = (ConvertibleTo<I2, I>() && ConvertibleTo<S2, S>())>
common_iteratoroperator= (common_iterator< I2, S2 > const &that)
 

Methods

◆ iter_move

template<typename I, typename S>
auto iter_move ( const common_iterator< I, S > &  i) -> decltype( ranges::iter_move(ranges::get<0>(detail::cidata(i))) )
friend
Precondition
InputIterator<I>()

Member Function Documentation

◆ operator++() [1/2]

template<typename I, typename S>
auto ranges::v3::common_iterator< I, S >::operator++ ( int  ) -> decltype( ranges::get<0>(data_)++ )
noexcept
Precondition
!ForwardIterator()

◆ operator++() [2/2]

template<typename I, typename S>
common_iterator ranges::v3::common_iterator< I, S >::operator++ ( int  )
Precondition
ForwardIterator<I>()