Iros
 
Loading...
Searching...
No Matches
reverse.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace di::container {
8namespace detail {
10 template<concepts::BidirectionalIterator Iter, concepts::SentinelFor<Iter> Sent>
12 constexpr auto operator()(Iter first, Sent sentinel_last) const -> Iter {
13 auto last = container::next(first, sentinel_last);
14 for (auto it = first, jt = last; it != jt && it != --jt; ++it) {
16 }
17 return last;
18 }
19
20 template<concepts::BidirectionalContainer Con>
22 constexpr auto operator()(Con&& container) const -> meta::BorrowedIterator<Con> {
24 }
25 };
26}
27
28constexpr inline auto reverse = detail::ReverseFunction {};
29}
Definition permutable.h:9
Definition sequence.h:13
Definition sequence.h:12
constexpr auto next
Definition next.h:35
constexpr auto reverse
Definition reverse.h:28
constexpr auto iterator_swap
Definition iterator_swap.h:49
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
Conditional< concepts::BorrowedContainer< Con >, ContainerIterator< Con >, container::Dangling > BorrowedIterator
Definition borrowed_iterator.h:11