operator==,<=>(ranges::cartesian_product_view::iterator)

From cppreference.com
Ranges library
Range adaptors
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)

Compares two iterators or an iterator and a sentinel.

Let current_ denote the underlying tuple of iterators.

1) Equivalent to: return x.current_ == y.current_;
2) Returns true if std:: get <i> (x.current_ ) == ranges::end (std:: get <i> (x.parent_ - >bases_) ) is true for any integer 0 ≤ i ≤ sizeof...(Vs). Otherwise, returns false
3) Equivalent to: return x.current_ <=> y.current_;

These functions are not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::ranges::cartesian_product_view::iterator<Const>

The != operator is synthesized from operator==.

Parameters

x, y - iterators or sentinels to compare

Return value

The result of comparison.

Example

See also

(C++23)
compares a sentinel with an iterator returned from cartesian_product_view::begin
(function)