Namensräume
Varianten
Aktionen

std::ranges::view_interface<D>::front

Von cppreference.com
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
constexpr decltype(auto) front()
    requires ranges::forward_range<D>;
(1) (seit C++20)
constexpr decltype(auto) front() const
    requires ranges::forward_range<const D>;
(2) (seit C++20)

Die Standardimplementierung der Memberfunktion front() gibt das erste Element in der Ansicht des abgeleiteten Typs zurück. Ob das Element als Wert oder als Referenz zurückgegeben wird, hängt vom operator* des Iterator-Typs ab.

1) Sei derived static_cast<D&>(*this). Äquivalent zu return *ranges::begin(derived);. Das Verhalten ist undefiniert, wenn empty() true ist (d.h. der Start-Iterator ist gleich dem Sentinel), auch wenn der auf die gleiche Weise erhaltene Iterator dereferenzierbar ist.
2) Gleich wie (1), außer dass derived gleich static_cast<const D&>(*this) ist.

Inhalt

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

Das erste Element in der Ansicht.

[bearbeiten] Hinweise

In C++20 stellt kein von std::ranges::view_interface abgeleiteter Typ in der Standardbibliothek eine eigene Memberfunktion front() bereit. Fast alle dieser Typen verwenden die Standardimplementierung.

Eine bemerkenswerte Ausnahme ist std::ranges::basic_istream_view. Da dieser niemals forward_range erfüllt, kann die Ansicht nicht die geerbte front() verwenden.

Die geerbte Memberfunktion front() ist für std::ranges::empty_view verfügbar, aber ein Aufruf führt immer zu undefiniertem Verhalten.

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

(C++11)(C++14)
gibt einen Iterator zum Anfang eines Containers oder Arrays zurück
(Funktionsvorlage) [bearbeiten]
gibt einen Iterator zum Anfang eines Ranges zurück
(Customization Point Objekt)[edit]
gibt einen Iterator zum Anfang eines schreibgeschützten Ranges zurück
(Customization Point Objekt)[edit]