11 template<concepts::InputIterator It, concepts::SentinelFor<It> Sent, concepts::WeaklyIncrementable OutTrue,
12 concepts::WeaklyIncrementable OutFalse,
typename Proj = function::Identity,
13 concepts::IndirectUnaryPredicate<meta::Projected<It, Proj>> Pred>
15 constexpr auto operator()(It first, Sent last, OutTrue out_true, OutFalse out_false, Pred pred,
17 for (; first != last; ++first) {
26 return { util::move(first), util::move(out_true), util::move(out_false) };
29 template<concepts::InputContainer Con, concepts::WeaklyIncrementable OutTrue,
30 concepts::WeaklyIncrementable OutFalse,
typename Proj = function::Identity,
31 concepts::IndirectUnaryPredicate<meta::Projected<meta::ContainerIterator<Con>, Proj>> Pred>
32 requires(concepts::IndirectlyCopyable<meta::ContainerIterator<Con>, OutTrue> &&
33 concepts::IndirectlyCopyable<meta::ContainerIterator<Con>, OutFalse>)
34 constexpr auto operator()(Con&&
container, OutTrue out_true, OutFalse out_false, Pred pred,