Namespaces
Variants

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 это:

1) static_cast<D&>(*this)
2) static_cast<const D&>(*this)


Если empty() равно true, поведение не определено.

(до C++26)

Если empty() равно true:

(начиная с 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)
возвращает итератор на начало контейнера или массива
(шаблон функции)
возвращает итератор на начало диапазона
(объект точки кастомизации)
возвращает итератор на начало диапазона только для чтения
(объект точки кастомизации)