Namensräume
Varianten
Aktionen

std::ranges::enumerate_view<V>::end

Von cppreference.com
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
constexpr auto end() requires (!__simple_view<V>);
(1) (seit C++23)
constexpr auto end() const requires /*range-mit-bewegbaren-referenzen*/<const V>;
(2) (seit C++23)

Gibt einen Iterator oder ein Sentinel zurück, der mit dem End-Iterator der enumerate_view gleich ist.

Sei base_ die zugrunde liegende View.

1) Äquivalent zu
if constexpr (ranges::forward_range<V> and 
              ranges::common_range<V>  and 
              ranges::sized_range<V>)
    return /*iterator*/<false>(ranges::end(base_), ranges::distance(base_));
else
    return /*sentinel*/<false>(ranges::end(base_));
2) Äquivalent zu
if constexpr (ranges::forward_range<const V> and 
              ranges::common_range<const V>  and 
              ranges::sized_range<const V>)
    return /*iterator*/<true>(ranges::end(base_), ranges::distance(base_));
else
    return /*sentinel*/<true>(ranges::end(base_));

Inhalt

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

Ein Iterator oder ein Sentinel, der das Ende der enumerate_view repräsentiert, wie oben beschrieben.

[bearbeiten] Beispiel

[bearbeiten] Fehlerberichte

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3919 C++23 ranges::distance kann für Sized-Common
Nicht-Forward-Underlying-Ranges zu UB führen
für solche Ranges wird ein Sentinel-Typ zurückgegeben

[bearbeiten] Siehe auch

gibt einen Iterator zum Anfang zurück
(öffentliche Member-Funktion) [edit]
gibt ein Sentinel zurück, das das Ende eines Ranges anzeigt
(Customization Point Objekt)[edit]