W3cubDocs

/C++

std::ranges::zip_transform_view<F,Views...>::iterator

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 types

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 /*maybe-const*/<Const, F>& denote const F& if Const is true, F& otherwise.
Let /*maybe-const*/<Const, Views> denote const Views if Const is true, Views otherwise.

Let /*POT*/ denote the pack of types std::iterator_traits<std::iterator_t<
/*maybe-const*/<Const, Views>>>::iterator_category...

If /*Base*/ models forward_range, then iterator_category denotes:

is not a reference. (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 /*Base*/ does not model forward_range.

iterator_concept /*ziperator*/<Const>::iterator_concept
value_type

Let /*RREF*/ be ranges::range_reference_t<Views>...,
and /*CRREF*/ be ranges::range_reference_t<const Views>.... Then:

difference_type range::range_difference_t</*Base*/>

Data members

Typical implementations of iterator hold two non-static data members:

These names are for exposition purposes only.

Member functions

(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)

Non-member functions

(C++23)
compares the underlying iterators
(function)
(C++23)
performs iterator arithmetic on underlying iterators
(function)

Example

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/zip_transform_view/iterator