std::ranges::view_interface<D>::front
constexpr decltype(auto) front()
requires ranges::forward_range<D>;
| (1) | (начиная с C++20) |
constexpr decltype(auto) front() const
requires ranges::forward_range<const D>;
| (2) | (начиная с C++20) |
Реализация по умолчанию функции-члена front() возвращает первый элемент представления производного типа. Возвращается ли элемент по значению или по ссылке, зависит от operator* типа итератора.
Эквивалентно return *ranges::begin(derived);, где derived — это:
static_cast<D&>(*this)
static_cast<const D&>(*this)
| Если | (до C++26) |
| Если
| (начиная с C++26) |
Возвращаемое значение
Первый элемент представления.
Примечания
В 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/cpp/ranges/view_interface/front