std::experimental::ranges::Sentinel
From cppreference.com
< cpp | experimental | ranges
| Defined in header <experimental/ranges/iterator> |
||
| template< class S, class I > concept bool Sentinel = |
(ranges TS) | |
Sentinel コンセプトは、範囲を示す Iterator 型と Semiregular 型の間の関係を指定します。
それぞれ S 型と I 型の値である s と i について、[i, s) が範囲を示しているとします。Sentinel<S, I> は、以下の場合にのみ満たされます。
- i == s がwell-definedであること。
- もし bool(i != s) ならば、
iは dereference可能であり、[++i,s)は範囲を示します。
== の定義域は時間とともに変化する可能性があります。範囲 [i, s) を示し、かつ i != s であるようなイテレータ i とセマンティック s が与えられた場合、i に等しい任意のイテレータをインクリメントした後も、[i, s) が範囲を示し続けることは保証されません(したがって、そのようなインクリメントの後、i == s がwell-definedであることが保証されなくなります)。