7 struct PrevPermutationFunction {
8 template<concepts::B
idirectionalIterator It, concepts::SentinelFor<It> Sent,
typename Comp = function::Compare,
9 typename Proj = function::Identity>
10 requires(concepts::Sortable<It, Comp, Proj>)
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));
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
constexpr auto last(concepts::detail::ConstantVector auto &vector, size_t count)
Definition vector_last.h:13
constexpr auto first(concepts::detail::ConstantVector auto &vector, size_t count)
Definition vector_first.h:13
constexpr auto prev_permutation
Definition prev_permutation.h:31
constexpr auto next_permutation
Definition next_permutation.h:71
constexpr auto end
Definition end.h:55
constexpr auto begin
Definition begin.h:52
constexpr auto invoke
Definition invoke.h:100
constexpr auto ref
Definition reference_wrapper.h:98
Definition any_storable.h:9
constexpr auto proj
Definition proj.h:59