Namespaces
Variants

std::ranges::stride_view<V>::end

Von de.cppreference.net
 
 
Bereichsbibliothek
Bereichsadaptoren
 
 
constexpr auto end() requires (!/*simple-view*/<V>);
(1) (seit C++23)
constexpr auto end() const requires ranges::range<const V>
(2) (seit C++23)

Gibt einen Iterator oder einen Sentinel zurück, der das Ende des stride_view darstellt.

Seien base_ und stride_ die zugrundeliegenden Datenmember.

1) Sei Const definiert als using Const = false; und Base als using Base = V;.
2) Sei Const definiert als using Const = true; und Base als using Base = const V;.

Äquivalent zu:

if constexpr (ranges::common_range<Base> &&
              ranges::sized_range<Base> &&
              ranges::forward_range<Base>)
{
    auto missing = (stride_ - ranges::distance(base_) % stride_) % stride_;
    return iterator<Const>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<Base> &&
                   !ranges::bidirectional_range<Base>)
{
    return iterator<Const>(this, ranges::end(base_));
}
else
{
    return std::default_sentinel;
}

Parameter

(keine)

Rückgabewert

Ein Iterator zum Element nach dem letzten Element, falls die zugrundeliegende Ansicht V das Konzept common_range modelliert. Andernfalls der std::default_sentinel , der gleich dem End-Iterator verglichen wird.

Hinweise

stride_view < V > modelliert common_range immer dann, wenn die zugrundeliegende View V dies tut.

Beispiel

Siehe auch

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