Namensräume
Varianten
Aktionen

std::ranges::view_interface<D>::back

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

Die Standardimplementierung der Memberfunktion back() gibt das letzte Element in der Ansicht des abgeleiteten Typs zurück. Ob das Element per Wert oder per Referenz zurückgegeben wird, hängt vom operator* des Iteratortyps ab.

1) Sei derived static_cast<D&>(*this). Äquivalent zu return *ranges::prev(ranges::end(derived));. Das Verhalten ist undefiniert, wenn empty() true ist (d.h. der Anfangs-Iterator ist gleich dem Sentinel), selbst wenn der auf dieselbe 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 letzte Element in der Ansicht.

[bearbeiten] Hinweise

In C++20 stellt kein Typ, der von std::ranges::view_interface abgeleitet ist, in der Standardbibliothek eine eigene back() Memberfunktion bereit.

Die folgenden abgeleiteten Typen können jedoch die Standardimplementierungen nicht verwenden, da sie weder bidirectional_range noch common_range erfüllen.

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

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

gibt einen Reverse-Iterator zum Anfang eines Containers oder Arrays zurück
(function template) [bearbeiten]
gibt einen Reverse-Iterator zu einem Range zurück
(Customization Point Objekt)[edit]
gibt einen Reverse-Iterator zu einem schreibgeschützten Range zurück
(Customization Point Objekt)[edit]