std::ranges::view_interface<D>::back
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 back()-Mitgliedsfunktion gibt das letzte Element in der View des abgeleiteten Typs zurück. Ob das Element per Wert oder per Referenz zurückgegeben wird, hängt vom operator* des Iteratortyps ab.
Äquivalent zu return *ranges::prev(ranges::end(derived));, wobei derived ist:
static_cast<D&>(*this)static_cast<const D&>(*this)
|
Wenn |
(bis C++26) |
|
Wenn
|
(seit C++26) |
Rückgabewert
Das letzte Element in der Ansicht.
Hinweise
In C++20 stellt kein von
std::ranges::view_interface
abgeleiteter Typ in der Standardbibliothek seine eigene
back()
Memberfunktion bereit.
Allerdings können die folgenden abgeleiteten Typen die Standardimplementierungen nicht verwenden, da sie weder
bidirectional_range
noch
common_range
erfüllen:
- std::ranges::basic_istream_view
- std::ranges::lazy_split_view
- std::ranges::split_view
- std::ranges::take_while_view
Die geerbte
back()
Memberfunktion ist für
std::ranges::empty_view
verfügbar, jedoch führt ein Aufruf davon stets zu undefiniertem Verhalten.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++14)
|
gibt einen Reverse-Iterator zum Anfang eines Containers oder Arrays zurück
(Funktionstemplate) |
|
(C++20)
|
gibt einen Reverse-Iterator zu einem Bereich zurück
(Customization Point Object) |
|
(C++20)
|
gibt einen Reverse-Iterator zu einem schreibgeschützten Bereich zurück
(Customization Point Object) |