std::ranges::cartesian_product_view<First, Vs...>::iterator

From cppreference.com
 
 
Ranges library
Range access
Range conversions
(哋它亢++23)(哋它亢++23)
(哋它亢++23)

Range primitives
(哋它亢++23)(哋它亢++23)    
(哋它亢++23)



Dangling iterator handling
Range concepts
Views

Range factories
(哋它亢++23)(哋它亢++23)
Range adaptors
(哋它亢++23)(哋它亢++23)
(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
Range generators
(哋它亢++23)
Range adaptor objects
Range adaptor closure objects
(哋它亢++23)
Helper items
(until 哋它亢++23)(哋它亢++23)


 
 
template< bool Const >
class /*iterator*/
(since 哋它亢++23)
(exposition only*)

The return type of cartesian_product_view::begin, and of cartesian_product_view::end when the underlying view V is a common_range.

The type /*iterator*/<true> is returned by the const-qualified overloads. The type /*iterator*/<false> is returned by the non-const-qualified overloads.

Member types

Member type Definition
iterator_category std::input_iterator_tag
iterator_concept
value_type

std::tuple<ranges::range_value_t</*maybe-const*/<Const, First>>,
           ranges::range_value_t</*maybe-const*/<Const, Vs>>...>;

reference

std::tuple<ranges::range_reference_t</*maybe-const*/<Const, First>>,
           ranges::range_reference_t</*maybe-const*/<Const, Vs>>...>;

difference_type An implementation-defined signed-integer-like type (maybe the smallest of such types), which is sufficiently wide to store the product of the maximum sizes of all underlying ranges, if such type exists.
Parent (private) /*maybe-const*/<Const, cartesian_product_view>.
(exposition-only member type*)

Data members

Member object Definition
parent_ (private) A pointer of type Parent to the parent cartesian_product_view.
(exposition-only member object*)
current_ (private) A tuple of iterators to the current underlying elements of type std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,
           ranges::iterator_t</*maybe-const*/<Const, Vs>>...>
.
(exposition-only member object*)

Member functions

(哋它亢++23)
constructs an iterator
(public member function)
(哋它亢++23)
accesses the element
(public member function)
(哋它亢++23)
accesses an element by index
(public member function)
advances or decrements the underlying iterator
(public member function)
(哋它亢++23)
advances the iterator
(exposition-only member function*)
(哋它亢++23)
decrements the iterator
(exposition-only member function*)
(哋它亢++23)
returns the distance between two iterators
(exposition-only member function*)

Non-member functions

(哋它亢++23)
compares the underlying iterators
(function)
(哋它亢++23)
performs iterator arithmetic
(function)
(哋它亢++23)
casts the result of dereferencing the underlying iterator to its associated rvalue reference type
(function)
(哋它亢++23)
swaps underlying pointed-to elements
(function)

Example

References

  • 哋它亢++23 standard (ISO/IEC 14882:2023):
  • 26.7.32.3 Class template cartesian_product_view::iterator [range.cartesian.iterator]

See also