11 template<concepts::ForwardIterator It, concepts::SentinelFor<It> Sent,
typename Proj = function::Identity,
12 concepts::IndirectStrictWeakOrder<meta::Projected<It, Proj>> Comp = function::Compare>
15 return { first, first };
18 auto min_iter = first;
19 auto max_iter = first;
20 for (
auto it = ++first; it != last; ++it) {
28 auto compare_with_max =
30 if (compare_with_max >= 0) {
39 if (it_jt_result < 0) {
63 return { util::move(min_iter), util::move(max_iter) };
66 template<concepts::ForwardContainer Con,
typename Proj = function::Identity,
67 concepts::IndirectStrictWeakOrder<meta::Projected<meta::ContainerIterator<Con>, Proj>> Comp =
constexpr auto next
Definition next.h:35
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
constexpr auto minmax_element
Definition minmax_element.h:76
constexpr auto invoke
Definition invoke.h:100
constexpr auto ref
Definition reference_wrapper.h:98
Definition zstring_parser.h:9
constexpr auto proj
Definition proj.h:59
Definition min_max_result.h:8
Definition minmax_element.h:10
constexpr auto operator()(It first, Sent last, Comp comp={}, Proj proj={}) const -> MinMaxResult< It >
Definition minmax_element.h:13
constexpr auto operator()(Con &&container, Comp comp={}, Proj proj={}) const -> MinMaxResult< meta::BorrowedIterator< Con > >
Definition minmax_element.h:69