|
libstdc++
|
Go to the source code of this file.
Namespaces | |
| __gnu_cxx | |
| __gnu_debug | |
| std | |
| std::__detail | |
Macros | |
| #define | _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) |
| #define | _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) |
Typedefs | |
| template<indirectly_readable _It> | |
| using | std::__detail::__iter_const_rvalue_reference_t = common_reference_t< const iter_value_t< _It > &&, iter_rvalue_reference_t< _It > > |
| template<typename _InputIterator > | |
| using | std::__iter_key_t = __remove_cvref_t< tuple_element_t< 0, typename iterator_traits< _InputIterator >::value_type > > |
| template<typename _InputIterator > | |
| using | std::__iter_to_alloc_t = pair< const __iter_key_t< _InputIterator >, __iter_val_t< _InputIterator > > |
| template<typename _InputIterator > | |
| using | std::__iter_val_t = __remove_cvref_t< tuple_element_t< 1, typename iterator_traits< _InputIterator >::value_type > > |
| template<input_iterator _It> | |
| using | std::const_iterator = __conditional_t< __detail::__constant_iterator< _It >, _It, basic_const_iterator< _It > > |
| template<semiregular _Sent> | |
| using | std::const_sentinel = typename __detail::__const_sentinel< _Sent >::type |
| template<indirectly_readable _It> | |
| using | std::iter_const_reference_t = common_reference_t< const iter_value_t< _It > &&, iter_reference_t< _It > > |
Functions | |
| 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 _Container > | |
| constexpr back_insert_iterator< _Container > | std::back_inserter (_Container &__x) |
| 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 > | |
| constexpr bool | std::operator!= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y) requires requires |
| template<typename _Iterator > | |
| constexpr move_iterator< _Iterator > | std::operator+ (typename move_iterator< _Iterator >::difference_type __n, const move_iterator< _Iterator > &__x) requires requires |
| 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 > | |
| constexpr bool | std::operator< (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y) requires requires |
| template<typename _IteratorL , typename _IteratorR > | |
| constexpr bool | std::operator< (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y) requires requires |
| template<typename _IteratorL , typename _IteratorR > | |
| constexpr bool | std::operator<= (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y) requires requires |
| template<typename _IteratorL , typename _IteratorR > | |
| constexpr bool | std::operator<= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y) requires requires |
| 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 _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) requires requires |
| template<typename _Iterator > | |
| constexpr bool | std::operator== (const reverse_iterator< _Iterator > &__x, const reverse_iterator< _Iterator > &__y) requires requires |
| template<typename _IteratorL , typename _IteratorR > | |
| constexpr bool | std::operator== (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y) requires requires |
| template<typename _IteratorL , typename _IteratorR > | |
| constexpr bool | std::operator> (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y) requires requires |
| template<typename _IteratorL , typename _IteratorR > | |
| constexpr bool | std::operator> (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y) requires requires |
| template<typename _IteratorL , typename _IteratorR > | |
| constexpr bool | std::operator>= (const move_iterator< _IteratorL > &__x, const move_iterator< _IteratorR > &__y) requires requires |
| template<typename _IteratorL , typename _IteratorR > | |
| constexpr bool | std::operator>= (const reverse_iterator< _IteratorL > &__x, const reverse_iterator< _IteratorR > &__y) requires requires |
| template<input_or_output_iterator _It, sentinel_for< _It > _Sent> | |
| std::requires (!same_as< _It, _Sent >) &©able< _It > class common_iterator | |
| template<typename _Iterator1 , typename _Iterator2 > | |
| std::requires (!sized_sentinel_for< _Iterator1, _Iterator2 >) inline const expr bool disable_sized_sentinel_for< reverse_iterator< _Iterator1 > | |
This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <iterator>.
This file implements reverse_iterator, back_insert_iterator, front_insert_iterator, insert_iterator, __normal_iterator, and their supporting functions and overloaded operators.
Definition in file bits/stl_iterator.h.