operator-(std::counted_iterator<I>, std::default_sentinel_t)
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) |
1) Возвращает отрицательное расстояние до конца.
2) Возвращает положительное расстояние до конца.
Этот шаблон функции не виден для обычного неквалифицированного или квалифицированного поиска, и может быть найден только с помощью поиска с учётом аргументов, когда std::counted_iterator<I> является ассоциированным классом аргументов.
Параметры
| x, y | - | адаптеры итераторов для вычисления разницы |
Возвращаемое значение
1)
-x.count()
2)
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) | перемещает или уменьшает итератор (публичный член-функция) |
|
(C++20) | перемещает итератор (шаблон функции) |
|
(C++20) | вычисляет расстояние между двумя адаптерами итераторов (шаблон функции) |
|
(C++20) | стандартный конечный маркер для использования с итераторами, которые знают границу своего диапазона (класс) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/counted_iterator/operator-2