Spec-Zone.ru › C++

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

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>>...>
    
  • Otherwise,
  • std::random_access_iterator_tag, if
is not a reference. (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

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

Non-member functions

operator==operator<=>
(C++23)
compares the underlying iterators
(function)
operator+operator-
(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/cpp/ranges/zip_transform_view/iterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API