Namespaces
Variants

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.

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

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]

Non-member functions

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

Example

Morty Proxy This is a proxified and sanitized view of the page, visit original site.