libstdc++
std::counted_iterator< _It > Class Template Reference

#include <stl_iterator.h>

Inherits std::__detail::__counted_iter_value_type< _It >, std::__detail::__counted_iter_concept< _It >, and std::__detail::__counted_iter_cat< _It >.

Public Types

using difference_type = iter_difference_t< _It >
 
using iterator_type = _It
 

Public Member Functions

constexpr counted_iterator (_It __i, iter_difference_t< _It > __n)
 
template<typename _It2 >
requires convertible_to<const _It2&, _It>
constexpr counted_iterator (const counted_iterator< _It2 > &__x)
 
constexpr _It base () &&noexcept(is_nothrow_move_constructible_v< _It >)
 
constexpr const _It & base () const &noexcept
 
constexpr iter_difference_t< _It > count () const noexcept
 
constexpr decltype(auto) operator* () const noexcept(noexcept(*_M_current))
 
constexpr decltype(auto) operator* () noexcept(noexcept(*_M_current))
 
constexpr counted_iterator operator+ (iter_difference_t< _It > __n) const
 
constexpr counted_iteratoroperator++ ()
 
constexpr decltype(auto) operator++ (int)
 
constexpr counted_iterator operator++ (int)
 
constexpr counted_iteratoroperator+= (iter_difference_t< _It > __n)
 
constexpr counted_iterator operator- (iter_difference_t< _It > __n) const
 
constexpr counted_iteratoroperator-- ()
 
constexpr counted_iterator operator-- (int)
 
constexpr counted_iteratoroperator-= (iter_difference_t< _It > __n)
 
constexpr auto operator-> () const noexcept
 
template<typename _It2 >
requires assignable_from<_It&, const _It2&>
constexpr counted_iteratoroperator= (const counted_iterator< _It2 > &__x)
 
constexpr decltype(auto) operator[] (iter_difference_t< _It > __n) const noexcept(noexcept(_M_current[__n]))
 

Friends

constexpr iter_rvalue_reference_t< _It > iter_move (const counted_iterator &__i) noexcept(noexcept(ranges::iter_move(__i._M_current)))
 
template<indirectly_swappable< _It > _It2>
constexpr void iter_swap (const counted_iterator &__x, const counted_iterator< _It2 > &__y) noexcept(noexcept(ranges::iter_swap(__x._M_current, __y._M_current)))
 
constexpr counted_iterator operator+ (iter_difference_t< _It > __n, const counted_iterator &__x)
 
template<common_with< _It > _It2>
constexpr iter_difference_t< _It2 > operator- (const counted_iterator &__x, const counted_iterator< _It2 > &__y)
 
constexpr iter_difference_t< _It > operator- (const counted_iterator &__x, default_sentinel_t)
 
constexpr iter_difference_t< _It > operator- (default_sentinel_t, const counted_iterator &__y)
 
template<common_with< _It > _It2>
constexpr strong_ordering operator<=> (const counted_iterator &__x, const counted_iterator< _It2 > &__y)
 
template<common_with< _It > _It2>
constexpr bool operator== (const counted_iterator &__x, const counted_iterator< _It2 > &__y)
 
constexpr bool operator== (const counted_iterator &__x, default_sentinel_t)
 

Detailed Description

template<input_or_output_iterator _It>
class std::counted_iterator< _It >

An iterator adaptor that keeps track of the distance to the end.

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

Member Typedef Documentation

◆ difference_type

template<input_or_output_iterator _It>
using std::counted_iterator< _It >::difference_type = iter_difference_t<_It>

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

◆ iterator_type

template<input_or_output_iterator _It>
using std::counted_iterator< _It >::iterator_type = _It

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

Constructor & Destructor Documentation

◆ counted_iterator() [1/2]

template<input_or_output_iterator _It>
constexpr std::counted_iterator< _It >::counted_iterator ( _It  __i,
iter_difference_t< _It >  __n 
)
inlineconstexpr

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

◆ counted_iterator() [2/2]

template<input_or_output_iterator _It>
template<typename _It2 >
requires convertible_to<const _It2&, _It>
constexpr std::counted_iterator< _It >::counted_iterator ( const counted_iterator< _It2 > &  __x)
inlineconstexpr

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

Member Function Documentation

◆ base() [1/2]

template<input_or_output_iterator _It>
constexpr _It std::counted_iterator< _It >::base ( ) &&
inlineconstexprnoexcept

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

◆ base() [2/2]

template<input_or_output_iterator _It>
constexpr const _It & std::counted_iterator< _It >::base ( ) const &
inlineconstexprnoexcept

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

◆ count()

template<input_or_output_iterator _It>
constexpr iter_difference_t< _It > std::counted_iterator< _It >::count ( ) const
inlineconstexprnoexcept

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

◆ operator*() [1/2]

template<input_or_output_iterator _It>
constexpr decltype(auto) std::counted_iterator< _It >::operator* ( ) const
inlineconstexprnoexcept

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

◆ operator*() [2/2]

template<input_or_output_iterator _It>
constexpr decltype(auto) std::counted_iterator< _It >::operator* ( )
inlineconstexprnoexcept

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

◆ operator+()

template<input_or_output_iterator _It>
constexpr counted_iterator std::counted_iterator< _It >::operator+ ( iter_difference_t< _It >  __n) const
inlineconstexpr

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

◆ operator++() [1/3]

template<input_or_output_iterator _It>
constexpr counted_iterator & std::counted_iterator< _It >::operator++ ( )
inlineconstexpr

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

◆ operator++() [2/3]

template<input_or_output_iterator _It>
constexpr decltype(auto) std::counted_iterator< _It >::operator++ ( int  )
inlineconstexpr

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

◆ operator++() [3/3]

template<input_or_output_iterator _It>
constexpr counted_iterator std::counted_iterator< _It >::operator++ ( int  )
inlineconstexpr

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

◆ operator+=()

template<input_or_output_iterator _It>
constexpr counted_iterator & std::counted_iterator< _It >::operator+= ( iter_difference_t< _It >  __n)
inlineconstexpr

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

◆ operator-()

template<input_or_output_iterator _It>
constexpr counted_iterator std::counted_iterator< _It >::operator- ( iter_difference_t< _It >  __n) const
inlineconstexpr

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

◆ operator--() [1/2]

template<input_or_output_iterator _It>
constexpr counted_iterator & std::counted_iterator< _It >::operator-- ( )
inlineconstexpr

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

◆ operator--() [2/2]

template<input_or_output_iterator _It>
constexpr counted_iterator std::counted_iterator< _It >::operator-- ( int  )
inlineconstexpr

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

◆ operator-=()

template<input_or_output_iterator _It>
constexpr counted_iterator & std::counted_iterator< _It >::operator-= ( iter_difference_t< _It >  __n)
inlineconstexpr

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

◆ operator->()

template<input_or_output_iterator _It>
constexpr auto std::counted_iterator< _It >::operator-> ( ) const
inlineconstexprnoexcept

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

◆ operator=()

template<input_or_output_iterator _It>
template<typename _It2 >
requires assignable_from<_It&, const _It2&>
constexpr counted_iterator & std::counted_iterator< _It >::operator= ( const counted_iterator< _It2 > &  __x)
inlineconstexpr

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

◆ operator[]()

template<input_or_output_iterator _It>
constexpr decltype(auto) std::counted_iterator< _It >::operator[] ( iter_difference_t< _It >  __n) const
inlineconstexprnoexcept

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

Friends And Related Symbol Documentation

◆ counted_iterator

template<input_or_output_iterator _It>
template<input_or_output_iterator _It2>
friend class counted_iterator
friend

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

◆ iter_move

template<input_or_output_iterator _It>
constexpr iter_rvalue_reference_t< _It > iter_move ( const counted_iterator< _It > &  __i)
friend

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

◆ iter_swap

template<input_or_output_iterator _It>
template<indirectly_swappable< _It > _It2>
constexpr void iter_swap ( const counted_iterator< _It > &  __x,
const counted_iterator< _It2 > &  __y 
)
friend

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

◆ operator+

template<input_or_output_iterator _It>
constexpr counted_iterator operator+ ( iter_difference_t< _It >  __n,
const counted_iterator< _It > &  __x 
)
friend

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

◆ operator- [1/3]

template<input_or_output_iterator _It>
template<common_with< _It > _It2>
constexpr iter_difference_t< _It2 > operator- ( const counted_iterator< _It > &  __x,
const counted_iterator< _It2 > &  __y 
)
friend

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

◆ operator- [2/3]

template<input_or_output_iterator _It>
constexpr iter_difference_t< _It > operator- ( const counted_iterator< _It > &  __x,
default_sentinel_t   
)
friend

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

◆ operator- [3/3]

template<input_or_output_iterator _It>
constexpr iter_difference_t< _It > operator- ( default_sentinel_t  ,
const counted_iterator< _It > &  __y 
)
friend

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

◆ operator<=>

template<input_or_output_iterator _It>
template<common_with< _It > _It2>
constexpr strong_ordering operator<=> ( const counted_iterator< _It > &  __x,
const counted_iterator< _It2 > &  __y 
)
friend

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

◆ operator== [1/2]

template<input_or_output_iterator _It>
template<common_with< _It > _It2>
constexpr bool operator== ( const counted_iterator< _It > &  __x,
const counted_iterator< _It2 > &  __y 
)
friend

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

◆ operator== [2/2]

template<input_or_output_iterator _It>
constexpr bool operator== ( const counted_iterator< _It > &  __x,
default_sentinel_t   
)
friend

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


The documentation for this class was generated from the following file: