Iros
 
Loading...
Searching...
No Matches
search.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace di::container {
7namespace detail {
9 template<concepts::ForwardIterator It, concepts::SentinelFor<It> Sent, concepts::ForwardIterator Jt,
10 concepts::SentinelFor<Jt> Jent, typename Pred = function::Equal, typename Proj = function::Identity,
11 typename Jroj = function::Identity>
13 constexpr auto operator()(It it, Sent ed, Jt jt, Jent fd, Pred pred = {}, Proj proj = {}, Jroj jroj = {}) const
14 -> View<It> {
15 for (; it != ed; ++it) {
16 auto result = container::mismatch(it, ed, jt, fd, util::ref(pred), util::ref(proj), util::ref(jroj));
17 if (result.in2 == fd) {
18 return { it, result.in1 };
19 }
20 }
21 return { it, it };
22 }
23
24 template<concepts::InputContainer Con, concepts::InputContainer Jon, typename Pred = function::Equal,
25 typename Proj = function::Identity, typename Jroj = function::Identity>
26 requires(concepts::IndirectlyComparable<meta::ContainerIterator<Con>, meta::ContainerIterator<Jon>, Pred, Proj,
27 Jroj>)
28 constexpr auto operator()(Con&& con, Jon&& jon, Pred pred = {}, Proj proj = {}, Jroj jroj = {}) const
30 return (*this)(container::begin(con), container::end(con), container::begin(jon), container::end(jon),
31 util::ref(pred), util::ref(proj), util::ref(jroj));
32 }
33 };
34}
35
36constexpr inline auto search = detail::SearchFunction {};
37}
38
39namespace di {
41}
Definition view.h:35
Definition indirectly_comparable.h:10
Definition sequence.h:13
Definition sequence.h:12
constexpr auto search
Definition search.h:36
constexpr auto mismatch
Definition mismatch.h:40
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
Conditional< concepts::BorrowedContainer< Con >, container::View< ContainerIterator< Con > >, container::Dangling > BorrowedView
Definition borrowed_view.h:12
decltype(container::begin(util::declval< T & >())) ContainerIterator
Definition container_iterator.h:8
constexpr auto ref
Definition reference_wrapper.h:98
Definition zstring_parser.h:9
constexpr auto proj
Definition proj.h:59