Namespaces
Variants

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

Von de.cppreference.net
 
 
Ranges-Bibliothek
Bereichsadapter
 
 
constexpr auto end() requires (!__simple_view<V>);
(1) (seit C++23)
constexpr auto end() const requires /*range-with-movable-references*/<const V>;
(2) (seit C++23)

Gibt einen Iterator oder einen Sentinel zurück, der gleich dem Enditerator des enumerate_view ist.

Sei base_ die zugrunde liegende Ansicht.

1) Entspricht:
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) Entspricht:
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_));

Parameter

(keine)

Rückgabewert

Ein Iterator oder ein Sentinel , der das Ende der enumerate_view darstellt, wie oben beschrieben.

Beispiel

Fehlerberichte

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

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 3919 C++23 ranges::distance kann UB für sized common
non-forward underlying ranges aufrufen
Sentinel-Typ wird für solche Ranges zurückgegeben

Siehe auch

gibt einen Iterator zum Anfang zurück
(öffentliche Elementfunktion)
gibt einen Sentinel zurück, der das Ende eines Bereichs anzeigt
(Anpassungspunktobjekt)