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

From cppreference.com
 
 
Ranges library
Range adaptors
 
 
template< bool Const >
class /*iterator*/
(since C++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 Definition
Parent (private) maybe-const <Const, ranges::cartesian_product_view>>
(exposition-only member type*)
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.

Data members

Member Definition
Parent* parent_ (private) A pointer to the parent object 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

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

Non-member functions

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

Example

References

  • C++23 standard (ISO/IEC 14882:2024):
  • 26.7.32.3 Class template cartesian_product_view::iterator [range.cartesian.iterator]

See also