std::ranges::lazy_split_view<V,Pattern>::begin
constexpr auto begin(); | (1) | (начиная с C++20) |
constexpr auto begin() const
requires ranges::forward_range<V> &&
ranges::forward_range<const V> &&
ranges::forward_range<const Pattern>;
| (2) | (начиная с C++20) |
Возвращает outer_iterator к первому элементу lazy_split_view.
Пусть base_ — базовое представление, а current_ — базовый объект кэширования (присутствует только если ranges::forward_range<V> ложно).
1) Эквивалентно
constexpr auto begin()
{
if constexpr (ranges::forward_range<V>)
{
constexpr bool simple = /*simple_view*/<V> && /*simple_view*/<Pattern>;
return /*outer_iterator*/<simple>{*this, ranges::begin(base_)};
}
else
{
current_ = ranges::begin(base_);
return /*outer_iterator*/<false>{*this};
}
}
2) Эквивалентно
return /*outer_iterator*/<true>{*this, ranges::begin(base_)};.Возвращаемое значение
outer_iterator к первому элементу.
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применён к | Опубликованное поведение | Правильное поведение |
|---|---|---|---|
| LWG 3592 | C++20 |
lazy_split_view не проверяет, является ли Pattern простым представлением |
Проверяется /*simple_view*/<Pattern> |
| LWG 3599 | C++20 | константная перегрузка (2) не ограниченаranges::forward_range<const Pattern> | ограничена |
См. также
| возвращает итератор или sentinel конца (открытая функция-член) |
|
|
(C++20) | возвращает итератор к началу диапазона (объект точки настройки) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/lazy_split_view/begin