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) | (since C++23) |
friend constexpr bool operator==( const /*iterator*/& x, std::default_sentinel_t ); | (2) | (since C++23) |
friend constexpr auto operator<=>( const /*iterator*/& x, const /*iterator*/& y ) requires /*all-random-access*/<Const, First, Vs...>; | (2) | (since 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/w/cpp/ranges/cartesian_product_view/iterator/operator_cmp