Namespaces
Variants

std::experimental::ranges:: Sentinel

From cppreference.net
Определено в заголовочном файле <experimental/ranges/iterator>
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 является корректно определенным.
  • Если bool ( i ! = s ) , тогда i является разыменовываемым и [ ++ i , s ) обозначает диапазон.

Область определения == может изменяться со временем. Для итератора i и ограничителя s таких, что [ i , s ) обозначает диапазон и i ! = s , [ i , s ) не обязана продолжать обозначать диапазон после инкрементирования любого итератора, равного i (и поэтому i == s больше не обязано быть корректно определённым после такого инкрементирования).