◐ Shell
clean mode source ↗

std::ranges::zip_transform_view<F,Views...>::iterator - cppreference.com

From cppreference.com

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.

Member types

Type Definition
Parent (private) maybe-const <Const, zip_transform_view>
(exposition-only member type*)
Base (private) maybe-const <Const, InnerView>
(exposition-only member type*)
iterator_category
(conditionally present)

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:

  • std::input_iterator_tag, if
    std::invoke_result_t</*maybe-const*/<Const, F>&,
        ranges::range_reference_t</*maybe-const*/<Const, Views>>...>
    
is not a reference.
  • Otherwise,
  • std::random_access_iterator_tag, if
(std::derived_from</*POT*/, std::random_access_iterator_tag> && ...) is true.
  • Otherwise, std::bidirectional_iterator_tag, if
(std::derived_from</*POT*/, std::bidirectional_iterator_tag> && ...) is true.
  • Otherwise, std::forward_iterator_tag, if
(std::derived_from</*POT*/, std::forward_iterator_tag> && ...) is true.
  • Otherwise, std::input_iterator_tag.

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:

  • std::remove_cvref_t<std::invoke_result_t<F&, /*RREF*/>> if Const is false,
  • std::remove_cvref_t<std::invoke_result_t<const F&, /*CRREF*/>> otherwise.
difference_type range::range_difference_t</*Base*/>

Data members

Member Description
Parent* parent_ (private) a pointer to the parent object
(exposition-only member object*)
ziperator<Const> inner_ (private) an iterator
(exposition-only member object*)

Member functions

Non-member functions

Example