template< bool Const > class /*iterator*/ | (since C++23) |
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.
The name of this class template (shown here as /*iterator*/
) is unspecified.
Typical implementations of /*iterator*/
hold two non-static data members:
parent_
of type Parent
(see below), which is the pointer to the parent cartesian_product_view
, current_
of type std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,
ranges::iterator_t</*maybe-const*/<Const, Vs>>...>
, These names are for exposition only.
Member type | Definition |
---|---|
iterator_category | std::input_iterator_tag |
iterator_concept |
|
value_type |
|
reference |
|
difference_type | An implementation-defined signed-integer-like type, that is (maybe the smallest) signed-integer-like type sufficiently wide to store the product of the maximum sizes of all underlying ranges, if such a type exists. |
Parent (private) | /*maybe-const*/<Const, cartesian_product_view> . The name is for exposition only. |
(C++23) | constructs an iterator (public member function) |
(C++23) | accesses the element (public member function) |
(C++23) | accesses an element by index (public member function) |
(C++23) | advances or decrements the underlying iterator (public member function) |
(C++23) | advances the iterator (exposition-only member function) |
(C++23) | decrements the iterator (exposition-only member function) |
(C++23) | returns the distance between two iterators (exposition-only member function) |
(C++23) | compares the underlying iterators (function) |
(C++23) | 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) |
cartesian_product_view::iterator
[range.cartesian.iterator]
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/cartesian_product_view/iterator