12 template<concepts::Iterator Iter>
17 for (; n > 0; --n, ++iterator) {}
19 for (; n < 0; ++n, --iterator) {}
24 template<concepts::Iterator Iter, concepts::SentinelFor<Iter> Sent>
25 constexpr void operator()(Iter& iterator, Sent bound)
const {
27 iterator = util::move(bound);
29 iterator += (bound - iterator);
31 for (; iterator != bound; ++iterator) {}
25 constexpr void operator()(Iter& iterator, Sent bound)
const {
…}
35 template<concepts::Iterator Iter, concepts::SentinelFor<Iter> Sent>
41 auto bounded_distance = (iterator - bound);
42 auto distance = bounded_distance > -n ? -n : bounded_distance;
48 auto bounded_distance = (bound - iterator);
49 auto distance = bounded_distance > n ? n : bounded_distance;
51 return n - bounded_distance;
53 for (; n > 0 && iterator != bound; --n, ++iterator) {}
55 for (; n < 0 && iterator != bound; ++n, --iterator) {}
Definition operations.h:19
Definition bidirectional_iterator.h:8
Definition random_access_iterator.h:12
Definition sized_sentinel_for.h:9
constexpr auto distance
Definition distance.h:44
constexpr auto advance
Definition advance.h:62
Definition zstring_parser.h:9
constexpr auto operator()(Iter &iterator, meta::IteratorSSizeType< Iter > n, Sent bound) const -> meta::IteratorSSizeType< Iter >
Definition advance.h:36
constexpr void operator()(Iter &iterator, meta::IteratorSSizeType< Iter > n) const
Definition advance.h:13
constexpr void operator()(Iter &iterator, Sent bound) const
Definition advance.h:25