12 template<concepts::InputIterator It, concepts::SentinelFor<It> Sent,
typename T,
typename U,
13 concepts::OutputIterator<U const&> Out,
typename Proj = function::Identity>
16 constexpr auto operator()(It first, Sent last, Out output, T
const& old_value, U
const& new_value,
18 for (; first != last; ++first, ++output) {
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,