11        template<concepts::InputIterator It, concepts::SentinelFor<It> Sent, concepts::WeaklyIncrementable Out,
 
   12                 typename Proj = function::Identity, concepts::IndirectUnaryPredicate<meta::Projected<It, Proj>> Pred>
 
   14        constexpr auto operator()(It first, Sent last, Out output, Pred pred, Proj 
proj = {}) 
const 
   16            for (; first != last; ++first) {
 
   22            return { util::move(first), util::move(output) };
 
 
   25        template<concepts::InputContainer Con, concepts::WeaklyIncrementable Out, 
typename Proj = function::Identity,
 
   26                 concepts::IndirectUnaryPredicate<meta::Projected<meta::ContainerIterator<Con>, Proj>> Pred>
 
   27        requires(concepts::IndirectlyCopyable<meta::ContainerIterator<Con>, Out>)
 
   28        constexpr auto operator()(Con&& 
container, Out output, Pred pred, Proj 
proj = {}) 
const