Namespaces
Variants
Views
Actions

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

From cppreference.com
 
 
Ranges library
Range adaptors
 
 
template< bool Const >
class /*iterator*/;
(since C++23)
(exposition only*)

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 type /*iterator*/<true> or /*iterator*/<false> treats the underlying views as const-qualified or non-const-qualified respectively.

Contents

[edit] Member types

Member type Definition
Parent (private) zip_transform_view if Const is false, const zip_transform_view otherwise.
(exposition-only member type*)
Base (private) InnerView if Const is false, const InnerView otherwise.
(exposition-only member type*)
iterator_category
(conditionally present)

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.
  • Otherwise,
(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*/>

[edit] Data members

Member object Definition
parent_ (private) A pointer Parent* to the parent object
(exposition-only member object*)
inner_ (private) An iterator of type ziperator<Const>.
(exposition-only member type*)

[edit] Member functions

constructs an iterator
(public member function)
obtains the result of applying the invocable object to the underlying pointed-to elements
(public member function)
obtains the result of applying the invocable object to the underlying elements at given offset
(public member function)
advances or decrements the underlying iterator
(public member function) [edit]

[edit] Non-member functions

compares the underlying iterators
(function)
performs iterator arithmetic on underlying iterators
(function)

[edit] Example