Namespaces
Variants

std::ranges::common_view<V>::end

Depuis fr.cppreference.net
 
 
Bibliothèque des plages
Adaptateurs de plages
 
 
constexpr auto end() requires (!/*simple-view*/<V>);
(1) (depuis C++20)
constexpr auto end() const requires ranges::range<const V>;
(2) (depuis C++20)
1) Renvoie un itérateur représentant la fin de la common_view, c'est-à-dire :
  • ranges::begin(base_) + ranges::distance(base_), si à la fois ranges::random_access_range<V> et ranges::sized_range<V> sont satisfaites,
  • std::common_iterator<ranges::iterator_t<V>, ranges::sentinel_t<V>>(ranges::end(base_)) sinon.
2) Identique à (1), mais V est qualifié const.

Valeur de retour

Un itérateur représentant la fin de la vue sous-jacente.

Exemple

#include <iostream>
#include <numeric>
#include <ranges>
int main()
{
    constexpr int n{4};
    constexpr auto v1 = std::views::iota(1)
                      | std::views::take(n)
                      | std::views::common
                      ;
    constexpr auto v2 = std::views::iota(2)
                      | std::views::take(n)
                      ;
    const int product = std::inner_product(v1.begin(), v1.end(),
                                           v2.begin(),
                                           0);
    std::cout << product << '\n';
}

Sortie :

40

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 4012 C++20 non-const overload missed simple-view check ajouté

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)