11 struct FindEndFunction {
12 template<concepts::ForwardIterator It, concepts::SentinelFor<It> Sent, concepts::ForwardIterator Jt,
13 concepts::SentinelFor<Jt> Jent,
typename Pred = function::Equal,
typename Proj = function::Identity,
14 typename Jroj = function::Identity>
15 requires(concepts::IndirectlyComparable<It, Jt, Pred, Proj, Jroj>)
16 constexpr auto operator()(It it, Sent ed, Jt jt, Jent fd, Pred pred = {}, Proj
proj = {}, Jroj jroj = {})
const
22 if constexpr (concepts::BidirectionalIterator<It> && concepts::SameAs<It, Sent> &&
23 concepts::BidirectionalIterator<Jt> && concepts::SameAs<Jt, Jent>) {
31 return { b.base(), a.base() };
35 for (; it != ed; ++it) {
38 if (result.in2 == fd) {
40 r2 = util::move(result.in1);
43 if (r1 == It {} && r2 == It {}) {
46 return { util::move(r1), util::move(r2) };
50 template<concepts::InputContainer Con, concepts::InputContainer Jon,
typename Pred = function::Equal,
51 typename Proj = function::Identity,
typename Jroj = function::Identity>
54 constexpr auto operator()(Con&& con, Jon&& jon, Pred pred = {}, Proj
proj = {}, Jroj jroj = {})
const
62constexpr inline auto find_end = detail::FindEndFunction {};
constexpr auto last(concepts::detail::ConstantVector auto &vector, size_t count)
Definition vector_last.h:13
constexpr auto next
Definition next.h:35
constexpr auto search
Definition search.h:36
View(Iter, Sent) -> View< Iter, Sent >
constexpr auto mismatch
Definition mismatch.h:40
constexpr auto make_reverse_iterator(Iter iter)
Definition reverse_iterator.h:110
constexpr auto end
Definition end.h:55
constexpr auto find_end
Definition find_end.h:62
constexpr auto begin
Definition begin.h:52
constexpr auto ref
Definition reference_wrapper.h:98
Definition any_storable.h:9
constexpr auto proj
Definition proj.h:59