Namespaces
Variants

operator==(std::ranges::take_view::sentinel<Const>)

с ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
friend constexpr bool
    operator==( const std::counted_iterator<ranges::iterator_t<Base>>& y,
                const /*sentinel*/& x );
(1) (начиная с C++20)
template< bool OtherC = !Const >
    requires std::sentinel_for<ranges::sentinel_t<Base>,
                               ranges::iterator_t</*add-const-if*/<OtherC, V>>>
friend constexpr bool
    operator==( const std::counted_iterator<
                          ranges::iterator_t</*add-const-if*/<OtherC, V>>>& y,
                const /*sentinel*/& x );
(2) (начиная с C++20)

Сравнивает take_view::/*sentinel*/ с std::counted_iterator (обычно полученным из вызова take_view::begin).

Возвращает true если y указывает за N-ный элемент (где N — число, переданное в конструктор take_view), или если достигнут конец базового представления.

Псевдоним шаблона, предназначенный только для пояснения, /*add-const-if*/ определяется как
template<bool C, class T>
using /*add-const-if*/ = std::conditional_t<C, const T, T>;
.

Эти функции не видны при обычном неквалифицированном или квалифицированном поиске и могут быть найдены только с помощью поиска, зависящего от аргументов, когда std::ranges::take_view::sentinel<Const> является ассоциированным классом аргументов.

Оператор != является синтезированным из operator==.

Параметры

y - std::counted_iterator для сравнения
x - страж для сравнения

Возвращаемое значение

y. count ( ) == 0 || y. base ( ) == x. end_ , где end_ обозначает базовый сторожевой элемент.

Пример

Отчеты о дефектах

Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3449 C++20 сравнение между итератором и сентинелом
различно const-квалифицированного take_view не поддерживалось
сделано поддерживаемым, когда возможно