12 struct CompareFunction {
13 template<concepts::InputIterator It, concepts::SentinelFor<It> Sent, concepts::InputIterator Jt,
14 concepts::SentinelFor<Jt> Jent,
typename Comp = function::Compare,
typename Proj = function::Identity,
15 typename Jroj = function::Identity>
16 requires(concepts::IndirectStrictPartialOrder<Comp, meta::Projected<It, Proj>, meta::Projected<Jt, Jroj>>)
17 constexpr auto operator()(It it, Sent ed, Jt jt, Jent fd, Comp comp = {}, Proj
proj = {},
18 Jroj jroj = {})
const {
20 for (; it != ed && jt != fd; ++it, ++jt) {
26 return static_cast<Result>((jt == fd) <=> (it == ed));
29 template<concepts::InputContainer Con, concepts::InputContainer Jon,
typename Comp = function::Compare,
30 typename Proj = function::Identity,
typename Jroj = function::Identity>
31 requires(concepts::IndirectStrictPartialOrder<Comp, meta::Projected<meta::ContainerIterator<Con>, Proj>,
32 meta::Projected<meta::ContainerIterator<Jon>, Jroj>>)
33 constexpr auto operator()(Con&& con, Jon&& jon, Comp comp = {}, Proj
proj = {}, Jroj jroj = {})
const {
40constexpr inline auto compare = detail::CompareFunction {};
constexpr auto compare
Definition compare.h:40
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
Expected< T, Error > Result
Definition result.h:8
constexpr auto proj
Definition proj.h:59