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)

Sentinel コンセプトは、 Iterator 型と、値が範囲を示す Semiregular 型との関係を指定します。

s i がそれぞれ型 S I の値であり、 [ i , s ) が範囲を表す場合、 Sentinel<S, I> は以下の条件を満たす場合にのみ成立します:

  • i == s は well-defined です。
  • bool ( i ! = s ) の場合、 i は dereferenceable であり、 [ ++ i , s ) は範囲を表します。

== の定義域は時間とともに変化することがあります。イテレータ i とセンチネル s が与えられ、 [ i , s ) が範囲を表し、 i ! = s であるとき、 i と等しい任意のイテレータをインクリメントした後も [ i , s ) が範囲を表し続けることは要求されません(したがって、そのようなインクリメント後は i == s がwell-definedであることも要求されません)。