operator==(ranges::zip_view::iterator, ranges::zip_view::sentinel)

< cpp‎ | ranges‎ | zip view‎ | sentinel
Ranges library
Range access
Range conversions

Range primitives

Dangling iterator handling
Range concepts

Range factories
Range adaptors
Range generators
Range adaptor objects
Range adaptor closure objects
Helper items
(until C++23)(C++23)

template< bool OtherConst >

    requires (std::sentinel_for<
        ranges::sentinel_t</*maybe-const*/<Const, Views>>,
        ranges::iterator_t</*maybe-const*/<OtherConst, Views>>> && ...)
friend constexpr bool operator==( const /*iterator*/<OtherConst>& x,

                                  const /*sentinel*/& y  );
(since C++23)

Compares the underlying tuple of iterators of x with the underlying tuple of sentinels of y.

This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when zip_view::sentinel<Const> is an associated class of the arguments.

The != operator is synthesized from operator==.

[edit] Parameters

x - iterator to compare
y - sentinel to compare

[edit] Return value

Let x.current_ denote the underlying tuple of iterators, and y.end_ denote the underlying tuple of sentinels.


  • true if at least one underlying iterator, obtained by expression equivalent to std::get<i>(x.current_), evaluates equal (using an appropriate operator==) to some underlying sentinel, obtained by expression equivalent to std::get<i>(y.end_), for some index i in ranges 0 <= i < sizeof...(Views),
  • false otherwise.

[edit] Example