Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
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 Member-Funktion operator[] erhält das Element mit dem angegebenen Offset relativ zum Anfangs-Iterator, indem die operator[] des Iterator-Typs wiederverwendet wird.

1) Sei derived static_cast<D&>(*this). Entspricht return ranges::begin(derived)[n];.
2) Gleich wie (1), außer dass derived gleich static_cast<const D&>(*this) ist.

Inhalt

[edit] Parameter

n - Position des zurückzugebenden Elements

[edit] Rückgabewert

Das Element mit dem Offset n relativ zum Anfangs-Iterator.

[edit] Anmerkungen

In C++20 stellt kein von std::ranges::view_interface abgeleiteter Typ in der Standardbibliothek eine eigene Member-Funktion operator[] bereit.

Folgende abgeleitete Typen können jedoch nicht die Standardimplementierungen verwenden, da sie niemals random_access_range erfüllen

Die geerbte Member-Funktion operator[] ist für std::ranges::empty_view verfügbar, ein Aufruf führt jedoch immer zu undefiniertem Verhalten.

[edit] Beispiel