template< bool Const > class /*iterator*/; // exposition only | (since C++23) |
The iterator type of a possibly const-qualified zip_transform_view, returned by zip_transform_view::begin and in certain cases by zip_transform_view::end. The name of this class template (shown here as iterator) is unspecified.
The type /*iterator*/<true> or /*iterator*/<false> treats the underlying views as const-qualified or non-const-qualified respectively.
| Member type | Definition |
|---|---|
Parent (private) | zip_transform_view if Const is false, const zip_transform_view otherwise. The name is for exposition only. |
Base (private) | InnerView if Const is false, const InnerView otherwise. The name is for exposition only. |
iterator_category | Let Let If
(std::derived_from</*POT*/, std::random_access_iterator_tag> && ...) is true.
(std::derived_from</*POT*/, std::bidirectional_iterator_tag> && ...) is true.
(std::derived_from</*POT*/, std::forward_iterator_tag> && ...) is true.
Not present if |
iterator_concept | /*ziperator*/<Const>::iterator_concept |
value_type | Let
|
difference_type | range::range_difference_t</*Base*/> |
Typical implementations of iterator hold two non-static data members:
parent_ of type Parent to the parent object inner_ of type ziperator<Const>. These names are for exposition purposes only.
|
(C++23) | constructs an iterator (public member function) |
|
(C++23) | obtains the result of applying the invocable object to the underlying poined-to elements (public member function) |
|
(C++23) | obtains the result of applying the invocable object to the underlying elements at given offset (public member function) |
|
(C++23) | advances or decrements the underlying iterator (public member function) |
|
(C++23) | compares the underlying iterators (function) |
|
(C++23) | performs iterator arithmetic on underlying iterators (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/zip_transform_view/iterator