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