Iros
 
Loading...
Searching...
No Matches
starts_with.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace di::container {
6namespace detail {
8 template<concepts::InputIterator It, concepts::SentinelFor<It> Sent, concepts::InputIterator Jt,
9 concepts::SentinelFor<Jt> Jent, typename Pred = function::Equal, typename Proj = function::Identity,
10 typename Jroj = function::Identity>
12 constexpr auto operator()(It it, Sent ed, Jt jt, Jent fd, Pred pred = {}, Proj proj = {}, Jroj jroj = {}) const
13 -> bool {
14 return container::mismatch(util::move(it), ed, util::move(jt), fd, util::ref(pred), util::ref(proj),
15 util::ref(jroj))
16 .in2 == fd;
17 }
18
19 template<concepts::InputContainer Con, concepts::InputContainer Jon, typename Pred = function::Equal,
20 typename Proj = function::Identity, typename Jroj = function::Identity>
21 requires(concepts::IndirectlyComparable<meta::ContainerIterator<Con>, meta::ContainerIterator<Jon>, Pred, Proj,
22 Jroj>)
23 constexpr auto operator()(Con&& con, Jon&& jon, Pred pred = {}, Proj proj = {}, Jroj jroj = {}) const -> bool {
24 return (*this)(container::begin(con), container::end(con), container::begin(jon), container::end(jon),
25 util::ref(pred), util::ref(proj), util::ref(jroj));
26 }
27 };
28}
29
30constexpr inline auto starts_with = detail::StartsWithFunction {};
31}
32
33namespace di {
35}
Definition indirectly_comparable.h:10
Definition sequence.h:13
Definition sequence.h:12
constexpr auto starts_with
Definition starts_with.h:30
constexpr auto mismatch
Definition mismatch.h:40
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
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