Namespaces
Variants

std::ranges::common_view<V>::begin

Depuis fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plage
 
 
constexpr auto begin() requires (!/*simple_view*/<V>);
(1) (depuis C++20)
constexpr auto begin() const requires range<const V>;
(2) (depuis C++20)
1) Renvoie un itérateur vers le premier élément de la common_view, c'est-à-dire :
  • ranges::begin(base_), si ranges::random_access_range<V> et ranges::sized_range<V> sont tous deux satisfaits,
  • std::common_iterator<ranges::iterator_t<V>, ranges::sentinel_t<V>>(ranges::begin(base_)) sinon.
2) Identique à (1), mais V est qualifié const.

Valeur de retour

Un itérateur vers le début de la vue sous-jacente.

Exemple

#include <iostream>
#include <numeric>
#include <ranges>
#include <string_view>
int main()
{
    constexpr auto common = std::views::iota(1)
                          | std::views::take(3)
                          | std::views::common
                          ;
    for (int i{}; int e : common)
        std::cout << (i++ ? " + " : "") << e;
    std::cout << " = " << std::accumulate(common.begin(), common.end(), 0) << '\n';
}

Sortie :

1 + 2 + 3 = 6

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 la fin
(fonction membre publique)
retourne un itérateur vers le début d'une plage
(objet de point de personnalisation)
retourne un sentinelle indiquant la fin d'une plage
(objet de point de personnalisation)