std::ranges::cartesian_product_view<First, Vs...>::iterator
< cpp | ranges | cartesian product view
|
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.
Data members
Typical implementations of /*iterator*/ hold two non-static data members:
parent_of typeParent(see below), which is the pointer to the parentcartesian_product_view,current_of type
- std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,
ranges::iterator_t</*maybe-const*/<Const, Vs>>...>, - which is the tuple of iterators to the current underlying elements.
These names are for exposition only.
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>>, |
reference |
std::tuple<ranges::range_reference_t</*maybe-const*/<Const, First>>, |
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. |
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) |
| 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
| This section is incomplete Reason: no example |
References
- C++23 standard (ISO/IEC 14882:2023):
-
- 26.7.32.3 Class template
cartesian_product_view::iterator[range.cartesian.iterator]
- 26.7.32.3 Class template