operator==,<=>(ranges::cartesian_product_view::iterator)
friend constexpr bool operator==( const /*iterator*/& x, const /*iterator*/& y )
requires std::equality_comparable<ranges::iterator_t</*maybe-const*/<Const, First>>>;
| (1) | (начиная с C++23) |
friend constexpr bool operator==( const /*iterator*/& x, std::default_sentinel_t ); | (2) | (начиная с C++23) |
friend constexpr auto operator<=>( const /*iterator*/& x, const /*iterator*/& y )
requires /*all-random-access*/<Const, First, Vs...>;
| (2) | (начиная с C++23) |
Сравнивает два итератора либо итератор и сентинел.
Пусть current_ обозначает базовый кортеж итераторов.
1) Эквивалентно:
return x.current_ == y.current_;
2) Возвращает
true, если std::get<i>(x.current_) == ranges::end(std::get<i>(x.parent_->bases_)) равно true для любого целого числа 0 ≤ i ≤ sizeof...(Vs). В противном случае возвращает false.
3) Эквивалентно:
return x.current_ <=> y.current_;
Эти функции не видны при обычном неквалифицированном поиске или квалифицированном поиске и могут быть найдены только с помощью поиска, зависящего от аргументов, если std::ranges::cartesian_product_view::iterator<Const> является ассоциированным классом аргументов.
Оператор != синтезируется из operator==.
Параметры
| x, y | - | итераторы или сентинелы для сравнения |
Возвращаемое значение
Результат сравнения.
Пример
См. также
|
(C++23) | сравнивает сентинел с итератором, возвращённым из cartesian_product_view::begin (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/cartesian_product_view/iterator/operator_cmp