Namespaces
Variants

std::experimental::ranges:: Sentinel

From cppreference.net
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, dessen Werte einen Bereich bezeichnen.

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

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

Der Bereich von == kann sich im Laufe der Zeit ändern. Gegeben ein Iterator i und ein Sentinel s , sodass [ i , s ) einen Bereich bezeichnet und i ! = s , ist [ i , s ) nicht verpflichtet, weiterhin einen Bereich zu bezeichnen, nachdem irgendein Iterator gleich i inkrementiert wurde (und somit ist i == s nach einem solchen Inkrement nicht länger verpflichtet, wohldefiniert zu sein).