Namensräume
Varianten
Aktionen

std::experimental::ranges::Sentinel

Von cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
Iterator-Bibliothek
Iterator-Konzepte
Indirekte aufrufbare Konzepte
                                                  
                                                  
                                                  
Gemeinsame Algorithmus-Anforderungen
                                                  
Konzept-Dienstprogramme
Iterator-Dienstprogramme und -Operationen
Iterator-Traits
Iterator-Adapter
Stream-Iteratoren
 
Definiert in Header <experimental/ranges/iterator>
template< class S, class I >

concept bool Sentinel =
    Semiregular<S> && Iterator<I> &&

    WeaklyEqualityComparableWith<S, I>;
(Ranges TS)

Das Sentinel-Konzept spezifiziert die Beziehung zwischen einem Iterator-Typ und einem Semiregular-Typ, deren Werte einen Bereich bezeichnen.

Seien s und i Werte vom Typ S bzw. I, so dass [is) einen Bereich bezeichnet. Sentinel<S, I> ist nur erfüllt, wenn

  • i == s wohl-definiert ist.
  • Wenn bool(i != s), dann ist i dereferenzierbar und [++is) bezeichnet einen Bereich.

Die Domäne von == kann sich im Laufe der Zeit ändern. Gegeben einem Iterator i und einem Sentinel s, so dass [is) einen Bereich bezeichnet und i != s, ist es nicht erforderlich, dass [is) nach dem Inkrementieren eines beliebigen zu i gleichen Iterators weiterhin einen Bereich bezeichnet (und somit ist i == s nach einem solchen Inkrement nicht mehr erforderlich wohl-definiert zu sein).