std::ranges::view_interface<D>::front
| 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.
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.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
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| (C++11)(C++14) |
gibt einen Iterator zum Anfang eines Containers oder Arrays zurück (Funktionsvorlage) |
| (C++20) |
gibt einen Iterator zum Anfang eines Ranges zurück (Customization Point Objekt) |
| (C++20) |
gibt einen Iterator zum Anfang eines schreibgeschützten Ranges zurück (Customization Point Objekt) |