std::ranges::view_interface<D>::operator[]
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.
derived static_cast<D&>(*this). Äquivalent zu return ranges::begin(derived)[n];.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:
- std::ranges::basic_istream_view
- std::ranges::filter_view
- std::ranges::join_view
- std::ranges::lazy_split_view
- std::ranges::split_view
Die geerbte operator [ ] 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 |