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_iterator & | operator++ ()
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_iterator & | operator= (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>()