14 #ifndef RANGES_V3_VIEW_REMOVE_HPP
15 #define RANGES_V3_VIEW_REMOVE_HPP
17 #include <type_traits>
31 #include <range/v3/detail/prologue.hpp>
42 template<
typename Value>
47 requires equality_comparable_with<T, Value const &>)
48 bool operator()(T && other)
const
50 return static_cast<T &&
>(other) == value_;
55 template(
typename Rng,
typename Value)(
56 requires move_constructible<Value> AND viewable_range<Rng> AND
59 constexpr
auto operator()(Rng && rng, Value value)
const
61 return remove_if(
static_cast<Rng &&
>(rng),
62 pred_<Value>{std::move(value)});
65 template(
typename Rng,
typename Value,
typename Proj)(
66 requires move_constructible<Value> AND viewable_range<Rng> AND
69 constexpr
auto operator()(Rng && rng, Value value, Proj proj)
const
71 return remove_if(
static_cast<Rng &&
>(rng),
72 pred_<Value>{std::move(value)},
79 template<
typename Value>
80 constexpr
auto operator()(Value value)
const
84 template(
typename Value,
typename Proj)(
85 requires (!range<Value>))
86 constexpr
auto operator()(Value && value, Proj proj)
const
96 using remove_base_fn::operator();
97 using remove_bind_fn::operator();
107 #include <range/v3/detail/epilogue.hpp>
CPP_concept indirectly_comparable
\concept indirectly_comparable
Definition: concepts.hpp:832
decltype(begin(declval(Rng &))) iterator_t
Definition: access.hpp:698
RANGES_INLINE_VARIABLE(detail::to_container_fn< detail::from_range< std::vector >>, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail
For initializing a container of the specified type with the elements of an Range.
Definition: conversion.hpp:399
defer< bind_back, Fn, Ts... > bind_back
Definition: meta.hpp:994
Definition: comparisons.hpp:28
Definition: remove.hpp:40
Definition: remove.hpp:78
Definition: remove.hpp:95