std::experimental::ranges::Sentinel
来自 cppreference.com
< cpp | experimental | ranges
定义在头文件 <experimental/ranges/iterator> 中 |
||
template< class S, class I > concept bool Sentinel = |
(范围 TS) | |
Sentinel
概念指定了 Iterator
类型和一个 Semiregular
类型之间的关系,其值表示一个范围。
令 s
和 i
分别为类型 S
和 I
的值,使得 [
i,
s)
表示一个范围。只有当以下条件满足时,Sentinel<S, I>
才满足:
- i == s 是有定义的。
- 如果 bool(i != s),那么
i
是可解引用的,并且[
++i,
s)
表示一个范围。
==
的定义域可能会随着时间的推移而改变。给定一个迭代器 i
和一个哨兵 s
,使得 [
i,
s)
表示一个范围,并且 i != s,在对任何等于 i
的迭代器进行递增后,[
i,
s)
不必继续表示一个范围(因此,在这样的递增之后,i == s 不需要被定义)。