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::bidirectional_iterator Concept Reference

Concept for iterators supporting bidirectional traversal. More...

#include <jh/conceptual/iterator.h>

Concept definition

template<typename I, typename S = I>
forward_iterator<I, S> && requires(I it) {
{ --it } -> std::same_as<I &>;
{ it-- } -> std::convertible_to<I>;
}
Concept for iterators supporting bidirectional traversal.
Definition iterator.h:555
Concept for multi-pass, readable, and self-sentinel iterators.
Definition iterator.h:525

Detailed Description

Concept for iterators supporting bidirectional traversal.

  • Refines forward_iterator, adding support for reverse movement using –it and it–.
  • Allows both pre-decrement and post-decrement operations, enabling traversal in both forward and backward directions.
  • An optional sentinel type S can be provided to check range consistency between begin() and end().
Template Parameters
IIterator-like type supporting bidirectional movement.
SSentinel type used to verify consistency (defaults to I).