Iros
 
Loading...
Searching...
No Matches
prev_permutation.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace di::container {
6namespace detail {
8 template<concepts::BidirectionalIterator It, concepts::SentinelFor<It> Sent, typename Comp = function::Compare,
9 typename Proj = function::Identity>
11 constexpr auto operator()(It first, Sent last, Comp comp = {}, Proj proj = {}) const -> InFoundResult<It> {
13 util::move(first), last,
14 [&]<typename T, typename U>(
15 T&& a, U&& b) -> decltype(function::invoke(comp, util::forward<T>(a), util::forward<U>(b))) {
16 return 0 <=> function::invoke(comp, util::forward<T>(a), util::forward<U>(b));
17 },
19 }
20
21 template<concepts::BidirectionalContainer Con, typename Comp = function::Compare,
22 typename Proj = function::Identity>
23 requires(concepts::Sortable<meta::ContainerIterator<Con>, Comp, Proj>)
24 constexpr auto operator()(Con&& container, Comp comp = {}, Proj proj = {}) const
27 }
28 };
29}
30
32}
33
34namespace di {
36}
Definition sortable.h:11
Definition sequence.h:13
Definition sequence.h:12
constexpr auto prev_permutation
Definition prev_permutation.h:31
constexpr auto next_permutation
Definition next_permutation.h:71
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
constexpr auto invoke
Definition invoke.h:100
Conditional< concepts::BorrowedContainer< Con >, ContainerIterator< Con >, container::Dangling > BorrowedIterator
Definition borrowed_iterator.h:11
constexpr auto ref
Definition reference_wrapper.h:98
Definition zstring_parser.h:9
constexpr auto proj
Definition proj.h:59
Definition in_found_result.h:8
Definition prev_permutation.h:7