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

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 const _It & base () const &noexcept
 
constexpr _It base ()&&noexcept(is_nothrow_move_constructible_v< _It >)
 
constexpr iter_difference_t< _It > count () const noexcept
 
decltype(auto) constexpr operator* ()
 
decltype(auto) constexpr operator* () const requires __detail
 
constexpr counted_iterator operator+ (iter_difference_t< _It > __n) const requires random_access_iterator< _It >
 
constexpr counted_iteratoroperator++ ()
 
 operator++ (int)
 
constexpr counted_iterator operator++ (int) requires forward_iterator< _It >
 
constexpr counted_iteratoroperator+= (iter_difference_t< _It > __n) requires random_access_iterator< _It >
 
constexpr counted_iterator operator- (iter_difference_t< _It > __n) const requires random_access_iterator< _It >
 
constexpr counted_iteratoroperator-- () requires bidirectional_iterator< _It >
 
constexpr counted_iterator operator-- (int) requires bidirectional_iterator< _It >
 
constexpr counted_iteratoroperator-= (iter_difference_t< _It > __n) requires random_access_iterator< _It >
 
constexpr auto operator-> () const noexcept requires contiguous_iterator< _It >
 
template<typename _It2 >
requires assignable_from< _It
&, const _It2 & > constexpr
counted_iterator
operator= (const counted_iterator< _It2 > &__x)
 
decltype(auto) constexpr operator[] (iter_difference_t< _It > __n) const requires random_access_iterator< _It >
 

Friends

template<input_or_output_iterator _It2>
class counted_iterator
 
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
iter_rvalue_reference_t< _It > 
noexcept (noexcept(ranges::iter_move(__i._M_current))) requires input_iterator< _It >
 
template<common_with< _It > _It2>
constexpr strong_ordering operator (const counted_iterator &__x, const counted_iterator< _It2 > &__y)
 
constexpr counted_iterator operator+ (iter_difference_t< _It > __n, const counted_iterator &__x) requires random_access_iterator< _It >
 
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 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 2259 of file bits/stl_iterator.h.


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