Namespaces
Variants

std::ranges::zip_transform_view<F, Vues...>::itérateur

De fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plage
 
 
template< bool Const >
class /*iterator*/;
(depuis C++23)
(exposé à titre indicatif*)

Le type d'itérateur d'un zip_transform_view éventuellement qualifié en const, renvoyé par zip_transform_view::begin et dans certains cas par zip_transform_view::end.

Le type /*iterator*/<true> ou /*iterator*/<false> traite les vues sous-jacentes comme étant qualifiées en const ou non qualifiées en const respectivement.

Types membres

Type Définition
Parent (privé) maybe-const <Const, zip_transform_view>
(type membre d'exposition uniquement*)
Base (privé) maybe-const <Const, InnerView>
(type membre d'exposition uniquement*)
iterator_category
(présent conditionnellement)

Soit /*POT*/ le paquet de types

std::iterator_traits<std::iterator_t<
    /*maybe-const*/<Const, Views>>>::iterator_category...

Si /*Base*/ modélise forward_range, alors iterator_category désigne :

  • std::input_iterator_tag, si
    std::invoke_result_t</*maybe-const*/<Const, F>&,
        ranges::range_reference_t</*maybe-const*/<Const, Views>>...>
    
n'est pas une référence.
  • Sinon,
  • std::random_access_iterator_tag, si
(std::derived_from</*POT*/, std::random_access_iterator_tag> && ...) est true.
  • Sinon, std::bidirectional_iterator_tag, si
(std::derived_from</*POT*/, std::bidirectional_iterator_tag> && ...) est true.
  • Sinon, std::forward_iterator_tag, si
(std::derived_from</*POT*/, std::forward_iterator_tag> && ...) est true.
  • Sinon, std::input_iterator_tag.

Absent si /*Base*/ ne modélise pas forward_range.

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

Soit /*RREF*/ soit ranges::range_reference_t<Views>...,
et /*CRREF*/ soit ranges::range_reference_t<const Views>.... Alors :

  • std::remove_cvref_t<std::invoke_result_t<F&, /*RREF*/>> si Const est false,
  • std::remove_cvref_t<std::invoke_result_t<const F&, /*CRREF*/>> sinon.
difference_type range::range_difference_t</*Base*/>

Membres de données

Membre Description
Parent* parent_ (privé) un pointeur vers l'objet parent
(membre objet d'exposition uniquement*)
ziperator<Const> inner_ (privé) un itérateur
(membre objet d'exposition uniquement*)

Fonctions membres

construit un itérateur
(fonction membre publique)
obtient le résultat de l'application de l'objet invocable aux éléments pointés sous-jacents
(fonction membre publique)
obtient le résultat de l'application de l'objet invocable aux éléments sous-jacents à l'offset donné
(fonction membre publique)
avance ou décrémente l'itérateur sous-jacent
(fonction membre publique)

Fonctions non membres

compare les itérateurs sous-jacents
(fonction)
effectue des opérations arithmétiques sur les itérateurs sous-jacents
(fonction)

Exemple