libstdc++
stl_iterator.h File Reference

Go to the source code of this file.

Classes

class  std::back_insert_iterator< _Container >
 
class  std::front_insert_iterator< _Container >
 
class  std::insert_iterator< _Container >
 
class  std::reverse_iterator< _Iterator >
 

Namespaces

namespace  __gnu_cxx
 
namespace  __gnu_debug
 
namespace  std
 

Macros

#define _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter)
 
#define _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter)
 

Typedefs

template<typename _InputIterator >
using std::__iter_key_t = __remove_cvref_t< typename iterator_traits< _InputIterator >::value_type::first_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< typename iterator_traits< _InputIterator >::value_type::second_type >
 

Functions

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<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 >
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 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 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 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 _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 { { __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 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

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.