12 template<concepts::InputIterator It, concepts::SentinelFor<It> Sent, concepts::WeaklyIncrementable Out,
13 typename Proj = function::Identity,
14 concepts::IndirectEquivalenceRelation<meta::Projected<It, Proj>> Comp = function::Equal>
20 constexpr auto operator()(It first, Sent last, Out out, Comp comp = {}, Proj
proj = {})
const
23 return { util::move(first), util::move(out) };
26 if constexpr (concepts::InputIterator<Out> &&
31 for (++first; first != last; ++first) {
38 }
else if constexpr (concepts::ForwardIterator<It>) {
67 return { util::move(first), util::move(out) };
70 template<concepts::InputContainer Con, concepts::WeaklyIncrementable Out,
typename Proj = function::Identity,
71 concepts::IndirectEquivalenceRelation<meta::Projected<meta::ContainerIterator<Con>, Proj>> Comp =
73 requires(concepts::IndirectlyCopyable<meta::ContainerIterator<Con>, Out> &&
74 (concepts::ForwardIterator<meta::ContainerIterator<Con>> ||
75 (concepts::InputIterator<Out> &&
77 concepts::IndirectlyCopyableStorable<meta::ContainerIterator<Con>, Out>) )
78 constexpr auto operator()(Con&&
container, Out out, Comp comp = {}, Proj
proj = {})
const
Definition forward_iterator.h:10
Definition indirectly_copyable_storable.h:10
Definition indirectly_copyable.h:9
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 prev
Definition prev.h:28
constexpr auto unique_copy
Definition unique_copy.h:86
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
constexpr auto invoke
Definition invoke.h:100
constexpr auto ref
Definition reference_wrapper.h:98
Definition zstring_parser.h:9
constexpr auto proj
Definition proj.h:59
Definition in_out_result.h:8
Definition unique_copy.h:11