operator-(ranges::adjacent_view::sentinel)
template< bool OtherConst >
requires std::sized_sentinel_for<ranges::sentinel_t<Base>,
ranges::iterator_t<__maybe_const<OtherConst, V>>>
friend constexpr ranges::range_difference_t<__maybe_const<OtherConst, V>>
operator-( const /*iterator*/<OtherConst>& x, const /*sentinel*/& y );
| (1) | (since C++23) |
template< bool OtherConst >
requires std::sized_sentinel_for<ranges::sentinel_t<Base>,
ranges::iterator_t<__maybe_const<OtherConst, V>>>
friend constexpr ranges::range_difference_t<__maybe_const<OtherConst, V>>
operator-( const /*sentinel*/& y, const /*iterator*/<OtherConst>& x );
| (2) | (since C++23) |
Вычисляет расстояние между базовым итератором x и базовым стражем y.
Пусть current_ обозначает базовый массив итераторов в x, а end_ обозначает базовый страж в y.
1) Эквивалентно:
return x.current_.back() - y.end_;
2) Эквивалентно:
return y.end_ - x.current_.back();
Эти шаблоны функций не видны для обычного неквалифицированного или квалифицированного поиска и могут быть найдены только с помощью поиска по аргументам, когда adjacent_view::sentinel является ассоциированным классом аргументов.
Параметры
| x | - | итератор |
| y | - | страж |
Возвращаемое значение
Расстояние между x и y.
Пример
См. также
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/adjacent_view/sentinel/operator-