Iros
Loading...
Searching...
No Matches
contains.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/algorithm/find.h
"
4
5
namespace
di::container
{
6
namespace
detail
{
7
struct
ContainsFunction
{
8
template
<concepts::InputIterator It, concepts::SentinelFor<It> Sent,
typename
T,
9
typename
Proj = function::Identity>
10
requires
(
concepts::IndirectBinaryPredicate<function::Equal, meta::Projected<It, Proj>
, T
const
*>)
11
constexpr
auto
operator
()(It first, Sent last, T
const
& needle, Proj
proj
= {})
const
->
bool
{
12
return
container::find
(util::move(first), last, needle,
util::ref
(
proj
)) != last;
13
}
14
15
template
<concepts::InputContainer Con,
typename
T,
typename
Proj = function::Identity>
16
requires
(
concepts::IndirectBinaryPredicate<function::Equal, meta::Projected<meta::ContainerIterator<Con>
, Proj>,
17
T
const
*>)
18
constexpr
auto
operator
()(Con&&
container
, T
const
& needle, Proj
proj
= {})
const
->
bool
{
19
return
(*
this
)(
container::begin
(
container
),
container::end
(
container
), needle,
util::ref
(
proj
));
20
}
21
};
22
}
23
24
constexpr
inline
auto
contains
=
detail::ContainsFunction
{};
25
}
26
27
namespace
di
{
28
using
container::contains
;
29
}
di::concepts::IndirectBinaryPredicate
Definition
indirect_binary_predicate.h:12
find.h
di::container::detail
Definition
sequence.h:13
di::container
Definition
sequence.h:12
di::container::find
constexpr auto find
Definition
find.h:35
di::container::end
constexpr auto end
Definition
end.h:47
di::container::begin
constexpr auto begin
Definition
begin.h:44
di::container::contains
constexpr auto contains
Definition
contains.h:24
di::util::ref
constexpr auto ref
Definition
reference_wrapper.h:98
di
Definition
zstring_parser.h:9
di::proj
constexpr auto proj
Definition
proj.h:59
di::container::detail::ContainsFunction
Definition
contains.h:7
libs
di
include
di
container
algorithm
contains.h
Generated by
1.13.0