Iterators
Collaboration diagram for Iterators:

## Modules

| Iterator Tags

## Namespaces

namespace | std::__detail

## 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::ostream_iterator< _Tp, _CharT, _Traits >
class | std::ostreambuf_iterator< _CharT, _Traits >
class | std::reverse_iterator< _Iterator >

## Macros

#define | __cpp_lib_make_reverse_iterator

## 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 _Iter >
constexpr iterator_traits< _Iter >::iterator_category | std::__iterator_category (const _Iter &)
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 _Iterator >
constexpr auto | std::__miter_base (reverse_iterator< _Iterator > __it) -> decltype(__make_reverse_iterator(__miter_base(__it.base())))
template<typename _Iterator >
constexpr auto | std::__niter_base (reverse_iterator< _Iterator > __it) -> decltype(__make_reverse_iterator(__niter_base(__it.base())))
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<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 _Iterator >
constexpr bool | std::operator!= (const move_iterator< _Iterator > &__x, const move_iterator< _Iterator > &__y)
template<typename _IteratorL , typename _IteratorR >
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 _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 _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 _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 >
constexpr bool | std::operator<= (const move_iterator< _Iterator > &__x, const move_iterator< _Iterator > &__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, _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 _Iterator >
constexpr bool | std::operator> (const move_iterator< _Iterator > &__x, const move_iterator< _Iterator > &__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 _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 _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< reverse_iterator< _Iterator1 >, reverse_iterator< _Iterator2 > >

## Detailed Description

Abstractions for uniform iterating through various underlying types.

## Macro Definition Documentation

## __cpp_lib_make_reverse_iterator

#define __cpp_lib_make_reverse_iterator

Definition at line 642 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 355 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 367 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 379 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 414 of file streambuf_iterator.h.

## __iterator_category()

template<typename _Iter >

constexpr iterator_traits< _Iter >::iterator_category std::__iterator_category | ( | const _Iter & |  | ) |

inline constexpr

This function is not a part of the C++ standard but is syntactic sugar for internal library use only.

Definition at line 238 of file stl_iterator_base_types.h.

Referenced by std::deque< _Tp, _Alloc >::deque(), std::vector< _Tp, _Alloc >::vector(), std::__find_if_not(), __gnu_debug::__valid_range_aux(), std::advance(), std::deque< _Tp, _Alloc >::assign(), std::copy_n(), std::distance(), std::fill_n(), std::find_end(), std::find_end(), std::deque< _Tp, _Alloc >::insert(), std::partition(), std::reverse(), std::rotate(), std::uninitialized_copy_n(), std::unique_copy(), and std::unique_copy().

## __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>>>

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

inline constexpr

Definition at line 1819 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*>>>

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

inline constexpr

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

## __make_reverse_iterator()

template<typename _Iterator >

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

inline constexpr

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

## __miter_base()

template<typename _Iterator >

constexpr auto std::__miter_base | ( | reverse_iterator< _Iterator > | __it | ) | -> decltype(__make_reverse_iterator(__miter_base(__it.base())))

constexpr

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

## __niter_base()

template<typename _Iterator >

constexpr auto std::__niter_base | ( | reverse_iterator< _Iterator > | __it | ) | -> decltype(__make_reverse_iterator(__niter_base(__it.base())))

constexpr

Definition at line 665 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 474 of file streambuf_iterator.h.

## back_inserter()

template<typename _Container >

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

inline constexpr

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 781 of file bits/stl_iterator.h.

Referenced by std::match_results< _Bi_iter, _Alloc >::format(), std::match_results< _Bi_iter, _Alloc >::format(), std::regex_replace(), std::regex_replace(), std::regex_replace(), and std::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 338 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 434 of file streambuf_iterator.h.

## front_inserter()

template<typename _Container >

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

inline constexpr

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 882 of file bits/stl_iterator.h.

## inserter()

template<typename _Container >

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

constexpr

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 1016 of file bits/stl_iterator.h.

## make_move_iterator()

template<typename _Iterator >

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

inline constexpr

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

## make_reverse_iterator()

template<typename _Iterator >

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

inline constexpr

Generator function for reverse_iterator.

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

## operator!=() [1/3]

template<typename _Iterator >

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

inline constexpr

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

## operator!=() [2/3]

template<typename _IteratorL , typename _IteratorR >

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

inline constexpr

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

## operator!=() [3/3]

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
| ) |  |

constexpr

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

## operator+() [1/2]

template<typename _Iterator >

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

inline constexpr

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

## operator+() [2/2]

template<typename _Iterator >

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

inline constexpr

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

## operator-() [1/2]

template<typename _IteratorL , typename _IteratorR >

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

inline constexpr

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

## operator-() [2/2]

template<typename _IteratorL , typename _IteratorR >

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

inline constexpr

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

## operator<() [1/3]

template<typename _Iterator >

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

inline constexpr

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

## operator<() [2/3]

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
| ) |  |

inline constexpr

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

## operator<() [3/3]

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
| ) |  |

constexpr

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

## operator<=() [1/3]

template<typename _Iterator >

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

inline constexpr

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

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

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
| ) |  |

inline constexpr

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

## operator<=() [3/3]

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
| ) |  |

constexpr

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

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

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
| ) |  |

constexpr

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

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

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
| ) |  |

constexpr

Definition at line 578 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
| ) |  |

inline

Definition at line 233 of file streambuf_iterator.h.

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

template<typename _Iterator >

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

inline constexpr

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

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

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
| ) |  |

inline constexpr

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

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

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
| ) |  |

constexpr

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

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

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
| ) |  |

constexpr

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 530 of file bits/stl_iterator.h.

## operator>() [1/3]

template<typename _Iterator >

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

inline constexpr

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

## operator>() [2/3]

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
| ) |  |

inline constexpr

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

## operator>() [3/3]

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
| ) |  |

constexpr

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

## operator>=() [1/3]

template<typename _Iterator >

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

inline constexpr

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

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

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
| ) |  |

inline constexpr

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

## operator>=() [3/3]

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
| ) |  |

constexpr

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

## Variable Documentation

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

template<typename _Iterator1 , typename _Iterator2 >

constexpr bool std::disable_sized_sentinel_for< reverse_iterator< _Iterator1 >, reverse_iterator< _Iterator2 > >

inline constexpr

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