Namespaces
Variants

std::ranges::view_interface<D>::operator[]

Von de.cppreference.net
 
 
Bereichsbibliothek
Bereichsadaptoren
 
 
template<ranges::random_access_range R = D>
constexpr decltype(auto) operator[]( ranges::range_difference_t<R> n );
(1) (seit C++20)
template<ranges::random_access_range R = const D>
constexpr decltype(auto) operator[]( ranges::range_difference_t<R> n ) const;
(2) (seit C++20)

Die Standardimplementierung der operator[]-Mitgliedsfunktion ermittelt das Element am angegebenen Offset relativ zum Begin-Iterator und verwendet dabei die operator[] des Iteratortyps wieder.

1) Sei derived static_cast<D&>(*this). Äquivalent zu return ranges::begin(derived)[n];.
2) Wie (1), mit der Ausnahme, dass derived static_cast<const D&>(*this) ist.

Parameter

n - Position des zurückzugebenden Elements

Rückgabewert

Das Element an Position n relativ zum Anfangsiterator.

Hinweise

In C++20 stellt kein von std::ranges::view_interface abgeleiteter Typ in der Standardbibliothek seine eigene operator [ ] Memberfunktion bereit.

Allerdings können die folgenden abgeleiteten Typen die Standardimplementierungen nicht verwenden, da sie niemals random_access_range erfüllen:

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

Beispiel