operator==(std::ranges::take_view::sentinel<Const>)
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
не поддерживалось
|
сделано поддерживаемым, когда возможно |