Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | ranges‎ | cartesian product view‎ | iterator
Revision as of 20:23, 20 June 2024 by Space Mission (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
 
 
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> is an associated class of the arguments.

The != operator is synthesized from operator==.

Contents

[edit] Parameters

x, y - iterators or sentinels to compare

[edit] Return value

The result of comparison.

[edit] Example

[edit] See also

compares a sentinel with an iterator returned from cartesian_product_view::begin
(function) [edit]