friend constexpr std::iter_difference_t<I> operator-( const counted_iterator& x, std::default_sentinel_t ); | (1) | (since C++20) |
friend constexpr std::iter_difference_t<I> operator-( std::default_sentinel_t, const counted_iterator& y ); | (2) | (since C++20) |
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.
x, y | - | iterator adaptors to compute the difference of |
-x.count()
.y.count()
.#include <initializer_list> #include <iterator> int main() { constexpr static auto v = {1, 2, 3, 4}; constexpr std::counted_iterator<std::initializer_list<int>::iterator> it {v.begin(), 3}; constexpr auto d1 = it - std::default_sentinel; static_assert( d1 == -3 ); // (1) constexpr auto d2 = std::default_sentinel - it; static_assert( d2 == +3 ); // (2) }
(C++20) | advances or decrements the iterator (public member function) |
(C++20) | advances the iterator (function template) |
(C++20) | computes the distance between two iterator adaptors (function template) |
(C++20) | default sentinel for use with iterators that know the bound of their range (class) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/counted_iterator/operator-2