std::ranges::cartesian_product_view<First, Vs...>::iterator
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 | the smallest signed-integer-like type (if any), which is sufficiently wide to store the product of the maximum sizes of all underlying ranges |
Data members
| Member | Description |
|---|---|
Parent* parent_ (private) | a pointer to the parent object cartesian_product_view(exposition-only member object*) |
std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,
| a tuple of iterators to the current underlying elements (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
|
(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:2024):
- 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/cpp/ranges/cartesian_product_view/iterator