Namespaces
Variants

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

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rangos
 
 
constexpr auto end() requires (!/*simple-view*/<V>);
(1) (desde C++20)
constexpr auto end() const requires ranges::range<const V>;
(2) (desde C++20)
1) Devuelve un iterador que representa el final de la common_view, es decir:
  • ranges::begin(base_) + ranges::distance(base_), si ambos ranges::random_access_range<V> y ranges::sized_range<V> se satisfacen,
  • std::common_iterator<ranges::iterator_t<V>, ranges::sentinel_t<V>>(ranges::end(base_)) en caso contrario.
2) Igual que (1), pero V está calificado como const.

Valor de retorno

Un iterador que representa el final de la vista subyacente.

Ejemplo

#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';
}

Salida:

40

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 4012 C++20 non-const overload missed simple-view check added

Véase también

devuelve un iterador al inicio
(función miembro pública)
devuelve un iterador al inicio de un rango
(objeto de punto de personalización)
devuelve un centinela que indica el final de un rango
(objeto de punto de personalización)