Namespaces
Variants

std::ranges::slide_view<V>::end

Depuis fr.cppreference.net
 
 
Bibliothèque des plages
Adaptateurs de plages
 
 
constexpr auto end()
    requires (!(/*simple-view*/<V> && /*slide-caches-nothing*/<const V>));
(1) (depuis C++23)
constexpr auto end() const
    requires /*slide-caches-nothing*/<const V>;
(2) (depuis C++23)

Renvoie une sentinelle ou un itérateur représentant la fin de la slide_view.

1) Soient base_ et n_ les membres de données sous-jacents. Équivalent à :
  • Si V modélise slide-caches-nothing, return iterator<false>(ranges::begin(base_) + ranges::range_difference_t<V>(size()), n_);.
  • Sinon, si V modélise slide-caches-last, return iterator<false>(ranges::prev(ranges::end(base_), n_ - 1, ranges::begin(base_)), n_);.
  • Sinon, si V modélise common_range, return iterator<false>(ranges::end(base_), ranges::end(base_), n_);.
  • Sinon, return sentinel(ranges::end(base_));.
Si V modélise slide-caches-last, cette fonction met en cache le résultat dans la cached_end_ pour une utilisation lors d'appels ultérieurs. Ceci est nécessaire pour fournir la complexité constante amortie requise par la range.
2) Équivalent à begin() + ranges::range_difference_t<const V>(size()).

Paramètres

(aucun)

Valeur de retour

Un sentinel ou un iterator représentant la fin de la slide_view .

Exemple

#include <iostream>
#include <ranges>
int main()
{
    static constexpr auto source = {'A', 'B', 'C', 'D'};
    for (const auto subrange: source | std::views::slide(3))
    {
        std::cout << "[ ";
        for (auto it = subrange.begin(); it != subrange.end(); ++it)
            std::cout << *it << ' ';
        std::cout << "]\n";
    }
}

Sortie :

[ A B C ]
[ B C D ]

Voir aussi

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