14#ifndef RANGES_V3_ALGORITHM_AUX_LOWER_BOUND_N_HPP
15#define RANGES_V3_ALGORITHM_AUX_LOWER_BOUND_N_HPP
24#include <range/v3/utility/static_const.hpp>
26#include <range/v3/detail/prologue.hpp>
34 template<
typename Pred,
typename Val>
35 struct lower_bound_predicate
41 constexpr bool operator()(T && t)
const
43 return invoke(pred_,
static_cast<T &&
>(t), val_);
47 template<
typename Pred,
typename Val>
48 constexpr lower_bound_predicate<Pred, Val> make_lower_bound_predicate(Pred & pred,
60 template(
typename I,
typename V,
typename C =
less,
typename P =
identity)(
63 constexpr I operator()(I first,
64 iter_difference_t<I> d,
69 return partition_point_n(std::move(first),
71 detail::make_lower_bound_predicate(pred, val),
80#include <range/v3/detail/epilogue.hpp>
The forward_iterator concept.
The indirect_strict_weak_order concept.
typename Fn::template invoke< Args... > invoke
Evaluate the invocable Fn with the arguments Args.
Definition meta.hpp:541
Definition lower_bound_n.hpp:59
Definition identity.hpp:25
Definition comparisons.hpp:50