operator==(std::counted_iterator<I>, std::default_sentinel_t)

Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
Iterator adaptors
Stream iterators
Iterator customization points
Iterator operations
Range access
friend constexpr bool operator==(
  const counted_iterator& x, std::default_sentinel_t );
(since C++20)

Checks if the underlying length (i.e. distance to the end) is equal to 0.

This function template is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::counted_iterator<I> is an associated class of the arguments.

The != operator is synthesized from operator==.


[edit] Parameters

x - an iterator adaptor

[edit] Return value

true if x.count() is equal to 0, false otherwise.

[edit] Example

#include <initializer_list>
#include <iterator>
int main()
    static constexpr auto v = {1, 2, 3, 4};
    constexpr std::counted_iterator<std::initializer_list<int>::iterator>
        it1 {v.begin(), 3},
        it2 {v.begin(), 0};
    static_assert( it1 != std::default_sentinel );
    static_assert( it2 == std::default_sentinel );
    static_assert( std::default_sentinel != it1 );
    static_assert( std::default_sentinel == it2 );

[edit] See also

compares the distances to the end
(function template) [edit]