Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
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 > ;
.

Эти функции не видны при обычном unqualified или qualified lookup и могут быть найдены только с помощью argument-dependent lookup , когда 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 не поддерживалось
сделано поддерживаемым, когда возможно