Namespaces
Variants

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

Из ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
constexpr auto end() requires (!/*simple-view*/<V>);
(1) (начиная с C++20)
constexpr auto end() const requires ranges::range<const V>;
(2) (начиная с C++20)
1) Возвращает итератор, представляющий конец common_view, то есть:
  • ranges::begin(base_) + ranges::distance(base_), если и ranges::random_access_range<V> и ranges::sized_range<V> удовлетворяются,
  • std::common_iterator<ranges::iterator_t<V>, ranges::sentinel_t<V>>(ranges::end(base_)) в противном случае.
2) То же, что и (1), но V является константно-квалифицированным.

Возвращаемое значение

Итератор, представляющий конец базового представления.

Пример

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

Вывод:

40

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 4012 C++20 non-const overload missed simple-view check added
Перевод текста на веб-странице на Русский:
DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 4012 C++20 non-const overload missed simple-view check добавлено

Смотрите также

возвращает итератор на начало
(публичная функция-член)
возвращает итератор на начало диапазона
(объект точки настройки)
возвращает страж, указывающий на конец диапазона
(объект точки настройки)