Iros
 
Loading...
Searching...
No Matches
prev.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace di::container {
9 template<concepts::BidirectionalIterator Iter>
10 constexpr auto operator()(Iter iterator) const -> Iter {
11 --iterator;
12 return iterator;
13 }
14
15 template<concepts::BidirectionalIterator Iter>
16 constexpr auto operator()(Iter iterator, meta::IteratorSSizeType<Iter> n) const -> Iter {
17 container::advance(iterator, -n);
18 return iterator;
19 }
20
21 template<concepts::BidirectionalIterator Iter>
22 constexpr auto operator()(Iter iterator, meta::IteratorSSizeType<Iter> n, Iter bound) const -> Iter {
23 container::advance(iterator, -n, bound);
24 return iterator;
25 }
26};
27
28constexpr inline auto prev = PrevFunction {};
29}
30
31namespace di {
32using container::prev;
33}
Definition sequence.h:12
constexpr auto prev
Definition prev.h:28
constexpr auto advance
Definition advance.h:62
decltype(container::iterator_ssize_type(types::in_place_type< meta::RemoveCVRef< T > >)) IteratorSSizeType
Definition iterator_ssize_type.h:8
Definition zstring_parser.h:9
Definition prev.h:8
constexpr auto operator()(Iter iterator, meta::IteratorSSizeType< Iter > n) const -> Iter
Definition prev.h:16
constexpr auto operator()(Iter iterator) const -> Iter
Definition prev.h:10
constexpr auto operator()(Iter iterator, meta::IteratorSSizeType< Iter > n, Iter bound) const -> Iter
Definition prev.h:22