Namespaces
Variants

std::ranges::chunk_view<V>::end

Von de.cppreference.net
 
 
Ranges-Bibliothek
Range-Adaptoren
 
std::ranges::chunk_view
Mitgliedsfunktionen
Klassen für input_ranges
Ableitungsleitfäden
outer-iterator
outer-iterator::value_type
inner-iterator
 
V modelliert nur input_range
constexpr std::default_sentinel_t end() const noexcept;
(1) (seit C++23)
V modelliert forward_range
constexpr auto end() requires (!__simple_view<V>);
(2) (seit C++23)
constexpr auto end() const requires ranges::forward_range<const V>;
(3) (seit C++23)

Gibt einen iterator oder einen std::default_sentinel zurück, der gleich dem End-Iterator des chunk_view ist.

1) Verfügbar nur, wenn V modelliert input_range. Äquivalent zu: return std::default_sentinel.
2,3) Verfügbar, wenn V modelliert forward_range. Sei base_ der zugrundeliegende angepasste View, n_ die gespeicherte Blockgröße und iterator die verschachtelte Iterator-Klasse.
2) Äquivalent zu
if constexpr (ranges::common_range<V> && ranges::sized_range<V>)
{
    auto missing = (n_ - ranges::distance(base_) % n_) % n_;
    return iterator<false>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<V> && !ranges::bidirectional_range<V>)
    return iterator<false>(this, ranges::end(base_));
else
    return std::default_sentinel;
3) Äquivalent zu
if constexpr (ranges::common_range<const V> && ranges::sized_range<const V>)
{
    auto missing = (n_ - ranges::distance(base_) % n_) % n_;
    return iterator<true>(this, ranges::end(base_), missing);
}
else if constexpr (ranges::common_range<const V> && !ranges::bidirectional_range<const V>)
    return iterator<true>(this, ranges::end(base_));
else
    return std::default_sentinel;

Rückgabewert

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

Beispiel

Siehe auch

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