Spec-Zone.ru › C++

std::ranges::lazy_split_view<V,Pattern>::end

constexpr auto end() requires ranges::forward_range<V> && ranges::common_range<V>;
(1) (начиная с C++20)
constexpr auto end() const;
(2) (начиная с C++20)

Возвращает итератор или, в некоторых случаях, sentinel, представляющий конец view. Пусть base_ — базовое представление.

1) Возвращает итератор. Эквивалентно: return /*outer_iterator*/</*simple_view*/<V> && /*simple_view*/<Pattern>>{*this, ranges::end(base_)};.
2) Возвращает outer_iterator или std::default_sentinel.

Эквивалентно:

if constexpr (ranges::forward_range<V> && ranges::forward_range<const V> &&
              ranges::common_range<const V> && ranges::forward_range<const Pattern>)
    return /*outer_iterator*/<true>{*this, ranges::end(base_)};
else
    return std::default_sentinel;

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

outer_iterator или std::default_sentinel, представляющий конец view.

Пример

#include <iostream>
#include <ranges>
#include <string_view>

int main()
{
    constexpr std::string_view keywords{"false float for friend"};
    std::ranges::lazy_split_view kw{keywords, ' '};
    const auto count = std::ranges::distance(kw.begin(), kw.end());
    std::cout << "Words count: " << count << '\n';
}

Вывод:

Words count: 4

Отчёты об ошибках

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

Отчёт об ошибке Применяется к Опубликованное поведение Корректное поведение
LWG 3592 C++20 lazy_split_view не проверяет, является ли Pattern простым представлением Проверяется /*simple_view*/<Pattern>
LWG 3599 C++20 константная перегрузка (2) не проверяет
ranges::forward_range<const Pattern>
проверяется

См. также

begin
возвращает итератор на начало
(открытая функция-член)
end
возвращает итератор или sentinel на конец
(открытая функция-член std::ranges::split_view<V,Pattern>)
ranges::begin
(C++20)
возвращает итератор на начало диапазона
(объект-точка настройки)
ranges::end
(C++20)
возвращает sentinel, обозначающий конец диапазона
(объект-точка настройки)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/lazy_split_view/end

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API