12 std::input_iterator
I,
13 std::sentinel_for<I>
S,
15 class Proj = std::identity
17 requires std::indirect_binary_predicate<std::ranges::equal_to, std::projected<I, Proj>,
const T*>
18 constexpr bool contains(
I first,
S last,
const T& value, Proj proj = {})
20 return std::ranges::find(first, last, value, proj) != last;
25 std::ranges::forward_range
R,
27 class Proj = std::identity
29 requires std::indirect_binary_predicate<std::ranges::equal_to, std::projected<std::ranges::iterator_t<R>, Proj>,
const T*>
30 constexpr bool contains(
R&& r,
const T& value, Proj proj = {})
32 return contains(std::ranges::begin(r), std::ranges::end(r), value, std::move(proj));
constexpr bool contains(I first, S last, const T &value, Proj proj={})
Definition ranges.h:18