Namespaces
Variants

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

Von de.cppreference.net
 
 
Ranges-Bibliothek
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 front()-Mitgliedsfunktion gibt das erste Element in der View des abgeleiteten Typs zurück. Ob das Element als Wert oder als Referenz zurückgegeben wird, hängt vom operator* des Iteratortyps ab.

Äquivalent zu return *ranges::begin(derived);, wobei derived ist:

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


Wenn empty() true ist, ist das Verhalten undefiniert.

(bis C++26)

Wenn empty() true ist:

  • Wenn die Implementierung gehärtet ist, tritt eine Vertragsverletzung auf.
  • Wenn die Implementierung nicht gehärtet ist, ist das Verhalten undefiniert.
(seit C++26)

Rückgabewert

Das erste Element in der Ansicht.

Hinweise

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

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

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

Beispiel

Siehe auch

(C++11) (C++14)
gibt einen Iterator zum Anfang eines Containers oder Arrays zurück
(Funktions-Template)
gibt einen Iterator zum Anfang eines Ranges zurück
(Customization Point Object)
gibt einen Iterator zum Anfang eines schreibgeschützten Ranges zurück
(Customization Point Object)