Namespaces
Variants

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

Von de.cppreference.net
 
 
Ranges-Bibliothek
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 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:

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


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

(bis C++26)

Wenn empty() gleich true ist:

  • Wenn die Implementierung gehärtet ist, tritt ein Vertragsverstoß auf.
  • Wenn die Implementierung nicht gehärtet ist, ist das Verhalten undefiniert.
(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:

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

Beispiel

Siehe auch

gibt einen Reverse-Iterator zum Anfang eines Containers oder Arrays zurück
(Funktionstemplate)
gibt einen Reverse-Iterator zu einem Bereich zurück
(Customization Point Object)
gibt einen Reverse-Iterator zu einem schreibgeschützten Bereich zurück
(Customization Point Object)