JH-Toolkit v1.4.1
An engineering-oriented C++20 toolkit with duck-typed concepts, static design, async coroutines, and semantic containers — header-only, RTTI-free, and concurrency-friendly.
Loading...
Searching...
No Matches
jh::concepts::sentinel_for Concept Reference

Concept for detecting sentinel-iterator compatibility. More...

#include <jh/conceptual/iterator.h>

Concept definition

template<typename S, typename I>
concept sentinel_for =requires(const S &s, const I &i) {
{ i == s } -> std::convertible_to<bool>;
{ s == i } -> std::convertible_to<bool>;
{ i != s } -> std::convertible_to<bool>;
{ s != i } -> std::convertible_to<bool>;
}
Concept for detecting sentinel-iterator compatibility.
Definition iterator.h:433

Detailed Description

Concept for detecting sentinel-iterator compatibility.

  • Checks only mutual equality and inequality between S and I (== and !=), ensuring both directions are valid and convertible to bool.
  • Unlike the STL's std::sentinel_for, this concept is more permissive: it does not require specific construction, iterator traits, or range category relationships.
  • Intended for lightweight duck-typed iteration boundaries where full STL conformance is unnecessary.
Template Parameters
SSentinel type to compare against an iterator.
IIterator-like type to be checked for compatibility with S.