Namespaces
Variants

std::experimental::ranges:: Sentinel

From ja.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であることも要求されません)。