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> | проверяется |
См. также
| возвращает итератор на начало (открытая функция-член) |
|
| возвращает итератор или sentinel на конец (открытая функция-член std::ranges::split_view<V,Pattern>) |
|
|
(C++20) | возвращает итератор на начало диапазона (объект-точка настройки) |
|
(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