11 struct ReplaceCopyFunction {
12 template<concepts::InputIterator It, concepts::SentinelFor<It> Sent,
typename T,
typename U,
13 concepts::OutputIterator<U const&> Out,
typename Proj = function::Identity>
14 requires(concepts::IndirectlyCopyable<It, Out> &&
15 concepts::IndirectBinaryPredicate<function::Equal, meta::Projected<It, Proj>, T
const*>)
16 constexpr auto operator()(It
first, Sent
last, Out output, T
const& old_value, U
const& new_value,
17 Proj
proj = {})
const -> InOutResult<It, Out> {
25 return { util::move(first), util::move(output) };
28 template<concepts::ForwardContainer Con,
typename T,
typename U, concepts::OutputIterator<U const&> Out,
29 typename Proj = function::Identity>
30 requires(concepts::IndirectlyCopyable<meta::ContainerIterator<Con>, Out> &&
31 concepts::IndirectBinaryPredicate<function::Equal, meta::Projected<meta::ContainerIterator<Con>, Proj>,
33 constexpr auto operator()(Con&& container, Out output, T
const& old_value, U
const& new_value,
41constexpr inline auto replace_copy = detail::ReplaceCopyFunction {};
constexpr auto last(concepts::detail::ConstantVector auto &vector, size_t count)
Definition vector_last.h:13
constexpr auto first(concepts::detail::ConstantVector auto &vector, size_t count)
Definition vector_first.h:13
constexpr auto replace_copy
Definition replace_copy.h:41
constexpr auto end
Definition end.h:55
constexpr auto begin
Definition begin.h:52
constexpr auto invoke
Definition invoke.h:100
constexpr auto ref
Definition reference_wrapper.h:98
Definition any_storable.h:9
constexpr auto proj
Definition proj.h:59