On this page
std::ranges::cartesian_product_view<First, Vs...>::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 type | Definition |
---|---|
iterator_category |
std::input_iterator_tag |
iterator_concept |
|
value_type |
|
reference |
|
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>>, .(exposition-only member object*) |
Member functions
(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*) |
Non-member functions
(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) |
Example
References
- C++23 standard (ISO/IEC 14882:2023):
- 26.7.32.3 Class template cartesian_product_view::iterator [range.cartesian.iterator]
See also
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/cartesian_product_view/iterator