std::ranges::view_interface<D>::front
constexpr decltype(auto) front()
requires ranges::forward_range<D>;
| (1) | (since C++20) |
constexpr decltype(auto) front() const
requires ranges::forward_range<const D>;
| (2) | (since C++20) |
Реализация по умолчанию для функции-члена front() возвращает первый элемент в представлении производного типа. Возвращение элемента по значению или по ссылке зависит от operator* типа итератора.
derived является static_cast<D&>(*this). Эквивалентно return *ranges::begin(derived);. Поведение неопределено, если empty() имеет значение true (т.е. начальная итерация равна стоп-итератору), даже если полученная итератором в таком же виде может быть обработана.derived является static_cast<const D&>(*this).Параметры
(нет)
Возвращаемое значение
Первый элемент в представлении.
Примечания
В C++20 ни один тип, производный от std::ranges::view_interface в стандартной библиотеке, не предоставляет собственную функцию-член front(). Почти все эти типы используют реализацию по умолчанию.
Заметное исключение — std::ranges::basic_istream_view. Для него никогда не выполняется условие forward_range, поэтому представление не может использовать унаследованную функцию front().
Унаследованная функция front() доступна для std::ranges::empty_view , но вызов её всегда приводит к неопределённому поведению.
Пример
См. также
|
(C++11)(C++14) | возвращает итератор в начало контейнера или массива (шаблон функции) |
|
(C++20) | возвращает итератор в начало диапазона (объект точек настройки) |
|
(C++20) | возвращает итератор в начало только для чтения диапазона (объект точек настройки) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/view_interface/front