Namespaces
Variants

std::ranges::zip_view<Vues...>::end

De fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plages
 
 
constexpr auto end()
    requires (!(/*simple-view*/<Views> && ...);
(1) (depuis C++23)
constexpr auto end() const
    requires (ranges::range<const Views> && ...);
(2) (depuis C++23)
template< class... Rs >
concept /*zip-is-common*/ =
    (sizeof...(Rs) == 1 && (ranges::common_range<Rs> && ...))
    ||
    (!(ranges::bidirectional_range<Rs> && ...) && (ranges::common_range<Rs> && ...))
    ||
    ((ranges::random_access_range<Rs> && ...) && (ranges::sized_range<Rs> && ...));
(3) (d'exposition uniquement*)

Renvoie un itérateur ou une sentinelle qui se compare comme égal à l'itérateur de fin de la zip_view.

Soit views_ le tuple sous-jacent de vues.

1) Équivalent à :
  • return /*sentinel*/<false>(/*tuple-transform*/(ranges::end, views_));,
si /*zip-is-common*/<Views...> est évalué à false. Sinon,
  • return begin() + std::iter_difference_t</*iterator*/<false>>(size());,
si (ranges::random_access_range<Views> && ...) est évalué à true. Sinon,
  • return /*iterator*/<false>(/*tuple-transform*/(ranges::end, views_));.
2) Équivalent à :
  • return /*sentinel*/<true>(/*tuple-transform*/(ranges::end, views_));,
si /*zip-is-common*/<const Views...> est évalué à false. Sinon,
  • return begin() + std::iter_difference_t</*iterator*/<true>>(size());,
si ranges::random_access_range<const Views> && ... est évalué à true. Sinon,
  • return /*iterator*/<true>(/*tuple-transform*/(ranges::end, views_));.

Paramètres

(aucun)

Valeur de retour

Un itérateur ou sentinelle représentant la fin de la zip_view , comme décrit ci-dessus.

Notes

ranges:: range < const ranges:: zip_view < Views... >> est modélisé si et seulement si pour chaque type Vi dans Views... , const Vi modélise range .

Exemple

Voir aussi

retourne un itérateur vers le début
(fonction membre publique)
retourne un sentinelle indiquant la fin d'une plage
(objet de point de personnalisation)