std::counted_iterator< _It > Class Template Reference
Iterators

`#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_iterator & | operator++ ()
constexpr decltype(auto) | operator++ (int)
constexpr counted_iterator | operator++ (int)
constexpr counted_iterator & | operator+= (iter_difference_t< _It > __n)
constexpr counted_iterator | operator- (iter_difference_t< _It > __n) const
constexpr counted_iterator & | operator-- ()
constexpr counted_iterator | operator-- (int)
constexpr counted_iterator & | operator-= (iter_difference_t< _It > __n)
constexpr auto | operator-> () const noexcept
template<typename _It2 > requires assignable_from<_It&, const _It2&>
constexpr counted_iterator & | operator= (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 2339 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 2347 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 2345 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
| ) |  |

inline constexpr

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

inline constexpr

Definition at line 2361 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 | ( |  | ) | &&

inline constexpr noexcept

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

## base() [2/2]

template<input_or_output_iterator _It>

constexpr const _It & std::counted_iterator< _It >::base | ( |  | ) | const &

inline constexpr noexcept

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

## count()

template<input_or_output_iterator _It>

constexpr iter_difference_t< _It > std::counted_iterator< _It >::count | ( |  | ) | const

inline constexpr noexcept

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

## operator*() [1/2]

template<input_or_output_iterator _It>

constexpr decltype(auto) std::counted_iterator< _It >::operator* | ( |  | ) | const

inline constexpr noexcept

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

## operator*() [2/2]

template<input_or_output_iterator _It>

constexpr decltype(auto) std::counted_iterator< _It >::operator* | ( |  | ) |

inline constexpr noexcept

Definition at line 2392 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

inline constexpr

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

## operator++() [1/3]

template<input_or_output_iterator _It>

constexpr counted_iterator & std::counted_iterator< _It >::operator++ | ( |  | ) |

inline constexpr

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

## operator++() [2/3]

template<input_or_output_iterator _It>

constexpr decltype(auto) std::counted_iterator< _It >::operator++ | ( | int |  | ) |

inline constexpr

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

## operator++() [3/3]

template<input_or_output_iterator _It>

constexpr counted_iterator std::counted_iterator< _It >::operator++ | ( | int |  | ) |

inline constexpr

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

inline constexpr

Definition at line 2475 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

inline constexpr

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

## operator--() [1/2]

template<input_or_output_iterator _It>

constexpr counted_iterator & std::counted_iterator< _It >::operator-- | ( |  | ) |

inline constexpr

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

## operator--() [2/2]

template<input_or_output_iterator _It>

constexpr counted_iterator std::counted_iterator< _It >::operator-- | ( | int |  | ) |

inline constexpr

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

inline constexpr

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

## operator->()

template<input_or_output_iterator _It>

constexpr auto std::counted_iterator< _It >::operator-> | ( |  | ) | const

inline constexpr noexcept

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

inline constexpr

Definition at line 2368 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

inline constexpr noexcept

Definition at line 2519 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 2567 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 2548 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 2558 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 2470 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 2493 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 2499 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 2504 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 2541 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 2530 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 2536 of file bits/stl_iterator.h.

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

- bits/stl_iterator.h