libstdc++: Iterators

libstdc++

Iterators
Collaboration diagram for Iterators:

## Topics
| Iterator Tags

## Classes
class | std::back_insert_iterator< _Container >
class | std::common_iterator< _It, _Sent >
class | std::counted_iterator< _It >
class | std::front_insert_iterator< _Container >
struct | std::input_iterator_tag
class | std::insert_iterator< _Container >
class | std::istream_iterator< _Tp, _CharT, _Traits, _Dist >
class | std::istreambuf_iterator< _CharT, _Traits >
struct | std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >
struct | std::iterator_traits< _Iterator >
struct | std::iterator_traits< _Tp * >
class | std::move_iterator< _Iterator >
class | std::move_sentinel< _Sent >
class | std::ostream_iterator< _Tp, _CharT, _Traits >
class | std::ostreambuf_iterator< _CharT, _Traits >
class | std::reverse_iterator< _Iterator >

## Macros
#define | _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter)
#define | _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter)

## Typedefs
template<input_iterator _It>
using | std::const_iterator
template<semiregular _Sent>
using | std::const_sentinel
template<indirectly_readable _It>
using | std::iter_const_reference_t

## Functions
template<bool _IsMove, typename _CharT>
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type | std::__copy_move_a2 (_CharT *__first, _CharT *__last, ostreambuf_iterator< _CharT > __result)
template<bool _IsMove, typename _CharT>
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type | std::__copy_move_a2 (const _CharT *__first, const _CharT *__last, ostreambuf_iterator< _CharT > __result)
template<bool _IsMove, typename _CharT>
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT * >::__type | std::__copy_move_a2 (istreambuf_iterator< _CharT > __first, istreambuf_iterator< _CharT > __last, _CharT *__result)
template<typename _CharT, typename _Size>
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT * >::__type | std::__copy_n_a (istreambuf_iterator< _CharT > __it, _Size __n, _CharT *__result, bool __strict)
template<typename _Iterator, typename _ReturnType = __conditional_t<__move_if_noexcept_cond <typename iterator_traits<_Iterator>::value_type>::value, _Iterator, move_iterator<_Iterator>>>
constexpr _ReturnType | std::__make_move_if_noexcept_iterator (_Iterator __i)
template<typename _Tp, typename _ReturnType = __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp*, move_iterator<_Tp*>>>
constexpr _ReturnType | std::__make_move_if_noexcept_iterator (_Tp *__i)
template<typename _Iterator>
constexpr reverse_iterator< _Iterator > | std::__make_reverse_iterator (_Iterator __i)
template<typename _CharT, typename _Distance>
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, void >::__type | std::advance (istreambuf_iterator< _CharT > &__i, _Distance __n)
template<typename _Container>
constexpr back_insert_iterator< _Container > | std::back_inserter (_Container &__x)
template<typename _CharT>
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type | std::copy (istreambuf_iterator< _CharT > __first, istreambuf_iterator< _CharT > __last, ostreambuf_iterator< _CharT > __result)
template<typename _CharT>
__gnu_cxx::__enable_if< __is_char< _CharT >::__value, istreambuf_iterator< _CharT > >::__type | std::find (istreambuf_iterator< _CharT > __first, istreambuf_iterator< _CharT > __last, const _CharT &__val)
template<typename _Container>
constexpr front_insert_iterator< _Container > | std::front_inserter (_Container &__x)
template<typename _Container>
constexpr insert_iterator< _Container > | std::inserter (_Container &__x, std::__detail::__range_iter_t< _Container > __i)
template<input_iterator _It>
constexpr const_iterator< _It > | std::make_const_iterator (_It __it) noexcept(is_nothrow_convertible_v< _It, const_iterator< _It > >)
template<semiregular _Sent>
constexpr const_sentinel< _Sent > | std::make_const_sentinel (_Sent __s) noexcept(is_nothrow_convertible_v< _Sent, const_sentinel< _Sent > >)
template<typename _Iterator>
constexpr move_iterator< _Iterator > | std::make_move_iterator (_Iterator __i)
template<typename _Iterator>
constexpr reverse_iterator< _Iterator > | std::make_reverse_iterator (_Iterator __i)
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() != __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator!= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
template<typename _Iterator> requires requires { { __x.base() + __n } -> same_as<_Iterator>; }
constexpr move_iterator< _Iterator > | std::operator+ (typename move_iterator< _Iterator >::difference_type __n, const move_iterator< _Iterator > &__x)
template<typename _Iterator>
constexpr reverse_iterator< _Iterator > | std::operator+ (typename reverse_iterator< _Iterator >::difference_type __n, const reverse_iterator< _Iterator > &__x)
template<typename _IteratorL, typename _IteratorR>
constexpr auto | std::operator- (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y) -> decltype(__x.base() - __y.base())
template<typename _IteratorL, typename _IteratorR>
constexpr auto | std::operator- (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y) -> decltype(__y.base() - __x.base())
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator< (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() > __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator< (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; }
constexpr bool | std::operator<= (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() >= __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator<= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
template<three_way_comparable _Iterator>
constexpr compare_three_way_result_t< _Iterator > | std::operator<=> (const move_iterator< _Iterator > &__x, const move_iterator< _Iterator > &__y)
template<typename _IteratorL, three_way_comparable_with< _IteratorL > _IteratorR>
constexpr compare_three_way_result_t< _IteratorL, _IteratorR > | std::operator<=> (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
template<three_way_comparable _Iterator>
constexpr compare_three_way_result_t< _Iterator, _Iterator > | std::operator<=> (const reverse_iterator< _Iterator > &__x, const reverse_iterator< _Iterator > &__y)
template<typename _IteratorL, three_way_comparable_with< _IteratorL > _IteratorR>
constexpr compare_three_way_result_t< _IteratorL, _IteratorR > | std::operator<=> (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
template<typename _CharT, typename _Traits>
bool | std::operator== (const istreambuf_iterator< _CharT, _Traits > &__a, const istreambuf_iterator< _CharT, _Traits > &__b)
template<typename _Iterator>
constexpr bool | std::operator== (const move_iterator< _Iterator > &__x, const move_iterator< _Iterator > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator== (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
template<typename _Iterator> requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator== (const reverse_iterator< _Iterator > &__x, const reverse_iterator< _Iterator > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator== (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; }
constexpr bool | std::operator> (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator> (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator>= (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y)
template<typename _IteratorL, typename _IteratorR> requires requires { { __x.base() <= __y.base() } -> convertible_to<bool>; }
constexpr bool | std::operator>= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y)

## Variables
template<typename _Iterator1, typename _Iterator2>
constexpr bool | std::disable_sized_sentinel_for< move_iterator< _Iterator1 >, move_iterator< _Iterator2 > >
template<typename _Iterator1, typename _Iterator2>
constexpr bool | std::disable_sized_sentinel_for< reverse_iterator< _Iterator1 >, reverse_iterator< _Iterator2 > >

## Detailed Description

Abstractions for uniform iterating through various underlying types.

## Macro Definition Documentation

## ◆ _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR

#define _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR | ( |  | _Iter | ) |

Definition at line 1846 of file bits/stl_iterator.h.

## ◆ _GLIBCXX_MAKE_MOVE_ITERATOR

#define _GLIBCXX_MAKE_MOVE_ITERATOR | ( |  | _Iter | ) |

Definition at line 1845 of file bits/stl_iterator.h.

## Typedef Documentation

## ◆ const_iterator

template<input_iterator _It>

using std::const_iterator

Definition at line 2652 of file bits/stl_iterator.h.

## ◆ const_sentinel

template<semiregular _Sent>

using std::const_sentinel

Definition at line 2668 of file bits/stl_iterator.h.

## ◆ iter_const_reference_t

template<indirectly_readable _It>

using std::iter_const_reference_t

Definition at line 2617 of file bits/stl_iterator.h.

## Function Documentation

## ◆ __copy_move_a2() [1/3]

template<bool _IsMove, typename _CharT>

__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type std::__copy_move_a2 | ( | _CharT * | __first,
|  | _CharT * | __last,
|  | ostreambuf_iterator< _CharT > | __result )

Definition at line 354 of file streambuf_iterator.h.

## ◆ __copy_move_a2() [2/3]

template<bool _IsMove, typename _CharT>

__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type std::__copy_move_a2 | ( | const _CharT * | __first,
|  | const _CharT * | __last,
|  | ostreambuf_iterator< _CharT > | __result )

Definition at line 366 of file streambuf_iterator.h.

## ◆ __copy_move_a2() [3/3]

template<bool _IsMove, typename _CharT>

__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT * >::__type std::__copy_move_a2 | ( | istreambuf_iterator< _CharT > | __first,
|  | istreambuf_iterator< _CharT > | __last,
|  | _CharT * | __result )

Definition at line 378 of file streambuf_iterator.h.

## ◆ __copy_n_a()

template<typename _CharT, typename _Size>

__gnu_cxx::__enable_if< __is_char< _CharT >::__value, _CharT * >::__type std::__copy_n_a | ( | istreambuf_iterator< _CharT > | __it,
|  | _Size | __n,
|  | _CharT * | __result,
|  | bool | __strict )

Definition at line 413 of file streambuf_iterator.h.

## ◆ __make_move_if_noexcept_iterator() [1/2]

template<typename _Iterator, typename _ReturnType = __conditional_t<__move_if_noexcept_cond <typename iterator_traits<_Iterator>::value_type>::value, _Iterator, move_iterator<_Iterator>>>

_ReturnType std::__make_move_if_noexcept_iterator | ( | _Iterator | __i | ) |
| constexpr

Definition at line 1825 of file bits/stl_iterator.h.

## ◆ __make_move_if_noexcept_iterator() [2/2]

template<typename _Tp, typename _ReturnType = __conditional_t<__move_if_noexcept_cond<_Tp>::value, const _Tp*, move_iterator<_Tp*>>>

_ReturnType std::__make_move_if_noexcept_iterator | ( | _Tp * | __i | ) |
| constexpr

Definition at line 1835 of file bits/stl_iterator.h.

## ◆ __make_reverse_iterator()

template<typename _Iterator>

reverse_iterator< _Iterator > std::__make_reverse_iterator | ( | _Iterator | __i | ) |
| inlineconstexpr

Definition at line 637 of file bits/stl_iterator.h.

## ◆ advance()

template<typename _CharT, typename _Distance>

__gnu_cxx::__enable_if< __is_char< _CharT >::__value, void >::__type std::advance | ( | istreambuf_iterator< _CharT > & | __i,
|  | _Distance | __n )

Definition at line 473 of file streambuf_iterator.h.

## ◆ back_inserter()

template<typename _Container>

back_insert_iterator< _Container > std::back_inserter | ( | _Container & | __x | ) |
| inlinenodiscardconstexpr

Parameters

  __x | A container of arbitrary type.

Returns
  An instance of back_insert_iterator working on `__x`.

This wrapper function helps in creating back_insert_iterator instances. Typing the name of the iterator requires knowing the precise full type of the container, which can be tedious and impedes generic programming. Using this function lets you take advantage of automatic template parameter deduction, making the compiler match the correct types for you.

Definition at line 764 of file bits/stl_iterator.h.

Referenced by std::match_results< _BidirectionalIterator, polymorphic_allocator< sub_match< _BidirectionalIterator > > >< const char * >::format(), std::match_results< _BidirectionalIterator, polymorphic_allocator< sub_match< _BidirectionalIterator > > >< const char * >::format(), regex_replace(), regex_replace(), regex_replace(), and regex_replace().

## ◆ copy()

template<typename _CharT>

__gnu_cxx::__enable_if< __is_char< _CharT >::__value, ostreambuf_iterator< _CharT > >::__type std::copy | ( | istreambuf_iterator< _CharT > | __first,
|  | istreambuf_iterator< _CharT > | __last,
|  | ostreambuf_iterator< _CharT > | __result )

Definition at line 337 of file streambuf_iterator.h.

## ◆ find()

template<typename _CharT>

__gnu_cxx::__enable_if< __is_char< _CharT >::__value, istreambuf_iterator< _CharT > >::__type std::find | ( | istreambuf_iterator< _CharT > | __first,
|  | istreambuf_iterator< _CharT > | __last,
|  | const _CharT & | __val )

Definition at line 433 of file streambuf_iterator.h.

## ◆ front_inserter()

template<typename _Container>

front_insert_iterator< _Container > std::front_inserter | ( | _Container & | __x | ) |
| inlinenodiscardconstexpr

Parameters

  __x | A container of arbitrary type.

Returns
  An instance of front_insert_iterator working on `x`.

This wrapper function helps in creating front_insert_iterator instances. Typing the name of the iterator requires knowing the precise full type of the container, which can be tedious and impedes generic programming. Using this function lets you take advantage of automatic template parameter deduction, making the compiler match the correct types for you.

Definition at line 865 of file bits/stl_iterator.h.

## ◆ inserter()

template<typename _Container>

insert_iterator< _Container > std::inserter | ( | _Container & | __x,
|  | std::__detail::__range_iter_t< _Container > | __i )
| nodiscardconstexpr

Parameters

  __x | A container of arbitrary type.
  __i | An iterator into the container.

Returns
  An instance of insert_iterator working on `__x`.

This wrapper function helps in creating insert_iterator instances. Typing the name of the iterator requires knowing the precise full type of the container, which can be tedious and impedes generic programming. Using this function lets you take advantage of automatic template parameter deduction, making the compiler match the correct types for you.

Definition at line 999 of file bits/stl_iterator.h.

## ◆ make_const_iterator()

template<input_iterator _It>

const_iterator< _It > std::make_const_iterator | ( | _It | __it | ) |
| constexprnoexcept

Definition at line 2984 of file bits/stl_iterator.h.

## ◆ make_const_sentinel()

template<semiregular _Sent>

const_sentinel< _Sent > std::make_const_sentinel | ( | _Sent | __s | ) |
| constexprnoexcept

Definition at line 2990 of file bits/stl_iterator.h.

## ◆ make_move_iterator()

template<typename _Iterator>

move_iterator< _Iterator > std::make_move_iterator | ( | _Iterator | __i | ) |
| inlineconstexpr

Definition at line 1816 of file bits/stl_iterator.h.

## ◆ make_reverse_iterator()

template<typename _Iterator>

reverse_iterator< _Iterator > std::make_reverse_iterator | ( | _Iterator | __i | ) |
| inlineconstexpr

Generator function for reverse_iterator.

Definition at line 647 of file bits/stl_iterator.h.

## ◆ operator!=()

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() != __y.base() } -> convertible_to<bool>; }

bool std::operator!= | ( | const reverse_iterator< _IteratorL > & | __x,
|  | const reverse_iterator< _IteratorR > & | __y )
| nodiscardconstexpr

Definition at line 537 of file bits/stl_iterator.h.

## ◆ operator+() [1/2]

template<typename _Iterator>
requires requires { { __x.base() + __n } -> same_as<_Iterator>; }

move_iterator< _Iterator > std::operator+ | ( | typename move_iterator< _Iterator >::difference_type | __n,
|  | const move_iterator< _Iterator > & | __x )
| inlineconstexpr

Definition at line 1806 of file bits/stl_iterator.h.

## ◆ operator+() [2/2]

template<typename _Iterator>

reverse_iterator< _Iterator > std::operator+ | ( | typename reverse_iterator< _Iterator >::difference_type | __n,
|  | const reverse_iterator< _Iterator > & | __x )
| inlinenodiscardconstexpr

Definition at line 629 of file bits/stl_iterator.h.

## ◆ operator-() [1/2]

template<typename _IteratorL, typename _IteratorR>

auto std::operator- | ( | const move_iterator< _IteratorL > & | __x,
|  | const move_iterator< _IteratorR > & | __y ) -> decltype(__x.base() - __y.base())
| inlineconstexpr

Definition at line 1798 of file bits/stl_iterator.h.

## ◆ operator-() [2/2]

template<typename _IteratorL, typename _IteratorR>

auto std::operator- | ( | const reverse_iterator< _IteratorL > & | __x,
|  | const reverse_iterator< _IteratorR > & | __y ) -> decltype(__y.base() - __x.base())
| inlineconstexpr

Definition at line 620 of file bits/stl_iterator.h.

## ◆ operator<() [1/2]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }

bool std::operator< | ( | const move_iterator< _IteratorL > & | __x,
|  | const move_iterator< _IteratorR > & | __y )
| inlineconstexpr

Definition at line 1701 of file bits/stl_iterator.h.

## ◆ operator<() [2/2]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() > __y.base() } -> convertible_to<bool>; }

bool std::operator< | ( | const reverse_iterator< _IteratorL > & | __x,
|  | const reverse_iterator< _IteratorR > & | __y )
| nodiscardconstexpr

Definition at line 544 of file bits/stl_iterator.h.

## ◆ operator<=() [1/2]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; }

bool std::operator<= | ( | const move_iterator< _IteratorL > & | __x,
|  | const move_iterator< _IteratorR > & | __y )
| inlineconstexpr

Definition at line 1711 of file bits/stl_iterator.h.

## ◆ operator<=() [2/2]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() >= __y.base() } -> convertible_to<bool>; }

bool std::operator<= | ( | const reverse_iterator< _IteratorL > & | __x,
|  | const reverse_iterator< _IteratorR > & | __y )
| nodiscardconstexpr

Definition at line 560 of file bits/stl_iterator.h.

## ◆ operator<=>() [1/4]

template<three_way_comparable _Iterator>

compare_three_way_result_t< _Iterator > std::operator<=> | ( | const move_iterator< _Iterator > & | __x,
|  | const move_iterator< _Iterator > & | __y )
| constexpr

Definition at line 1753 of file bits/stl_iterator.h.

## ◆ operator<=>() [2/4]

template<typename _IteratorL, three_way_comparable_with< _IteratorL > _IteratorR>

compare_three_way_result_t< _IteratorL, _IteratorR > std::operator<=> | ( | const move_iterator< _IteratorL > & | __x,
|  | const move_iterator< _IteratorR > & | __y )
| constexpr

Definition at line 1686 of file bits/stl_iterator.h.

## ◆ operator<=>() [3/4]

template<three_way_comparable _Iterator>

compare_three_way_result_t< _Iterator, _Iterator > std::operator<=> | ( | const reverse_iterator< _Iterator > & | __x,
|  | const reverse_iterator< _Iterator > & | __y )
| nodiscardconstexpr

Definition at line 595 of file bits/stl_iterator.h.

## ◆ operator<=>() [4/4]

template<typename _IteratorL, three_way_comparable_with< _IteratorL > _IteratorR>

compare_three_way_result_t< _IteratorL, _IteratorR > std::operator<=> | ( | const reverse_iterator< _IteratorL > & | __x,
|  | const reverse_iterator< _IteratorR > & | __y )
| nodiscardconstexpr

Definition at line 577 of file bits/stl_iterator.h.

## ◆ operator==() [1/5]

template<typename _CharT, typename _Traits>

bool std::operator== | ( | const istreambuf_iterator< _CharT, _Traits > & | __a,
|  | const istreambuf_iterator< _CharT, _Traits > & | __b )
| inlinenodiscard

Definition at line 232 of file streambuf_iterator.h.

## ◆ operator==() [2/5]

template<typename _Iterator>

bool std::operator== | ( | const move_iterator< _Iterator > & | __x,
|  | const move_iterator< _Iterator > & | __y )
| inlineconstexpr

Definition at line 1745 of file bits/stl_iterator.h.

## ◆ operator==() [3/5]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }

bool std::operator== | ( | const move_iterator< _IteratorL > & | __x,
|  | const move_iterator< _IteratorR > & | __y )
| inlineconstexpr

Definition at line 1675 of file bits/stl_iterator.h.

## ◆ operator==() [4/5]

template<typename _Iterator>
requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }

bool std::operator== | ( | const reverse_iterator< _Iterator > & | __x,
|  | const reverse_iterator< _Iterator > & | __y )
| nodiscardconstexpr

Definition at line 588 of file bits/stl_iterator.h.

## ◆ operator==() [5/5]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }

bool std::operator== | ( | const reverse_iterator< _IteratorL > & | __x,
|  | const reverse_iterator< _IteratorR > & | __y )
| nodiscardconstexpr

Parameters

  __x | A reverse_iterator.
  __y | A reverse_iterator.

Returns
  A simple bool.

Reverse iterators forward comparisons to their underlying base() iterators.

Definition at line 529 of file bits/stl_iterator.h.

References std::reverse_iterator< _Iterator >::base().

## ◆ operator>() [1/2]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; }

bool std::operator> | ( | const move_iterator< _IteratorL > & | __x,
|  | const move_iterator< _IteratorR > & | __y )
| inlineconstexpr

Definition at line 1722 of file bits/stl_iterator.h.

## ◆ operator>() [2/2]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }

bool std::operator> | ( | const reverse_iterator< _IteratorL > & | __x,
|  | const reverse_iterator< _IteratorR > & | __y )
| nodiscardconstexpr

Definition at line 553 of file bits/stl_iterator.h.

## ◆ operator>=() [1/2]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; }

bool std::operator>= | ( | const move_iterator< _IteratorL > & | __x,
|  | const move_iterator< _IteratorR > & | __y )
| inlineconstexpr

Definition at line 1732 of file bits/stl_iterator.h.

## ◆ operator>=() [2/2]

template<typename _IteratorL, typename _IteratorR>
requires requires { { __x.base() <= __y.base() } -> convertible_to<bool>; }

bool std::operator>= | ( | const reverse_iterator< _IteratorL > & | __x,
|  | const reverse_iterator< _IteratorR > & | __y )
| nodiscardconstexpr

Definition at line 569 of file bits/stl_iterator.h.

## Variable Documentation

## ◆ disable_sized_sentinel_for< move_iterator< _Iterator1 >, move_iterator< _Iterator2 > >

template<typename _Iterator1, typename _Iterator2>

bool std::disable_sized_sentinel_for< move_iterator< _Iterator1 >, move_iterator< _Iterator2 > >
| inlineconstexpr

Definition at line 1858 of file bits/stl_iterator.h.

## ◆ disable_sized_sentinel_for< reverse_iterator< _Iterator1 >, reverse_iterator< _Iterator2 > >

template<typename _Iterator1, typename _Iterator2>

bool std::disable_sized_sentinel_for< reverse_iterator< _Iterator1 >, reverse_iterator< _Iterator2 > >
| inlineconstexpr

Definition at line 653 of file bits/stl_iterator.h.