11 struct TransformFunction {
12 template<concepts::InputIterator It, concepts::SentinelFor<It> Sent, concepts::WeaklyIncrementable Out,
13 concepts::CopyConstructible F,
typename Proj = function::Identity>
14 requires(concepts::IndirectlyWritable<Out, meta::IndirectResult<F&, meta::Projected<It, Proj>>>)
15 constexpr auto operator()(It
first, Sent
last, Out output, F op, Proj
proj = {})
const -> InOutResult<It, Out> {
19 return { util::move(first), util::move(output) };
22 template<concepts::InputContainer Con, concepts::WeaklyIncrementable Out, concepts::CopyConstructible F,
23 typename Proj = function::Identity>
24 requires(concepts::IndirectlyWritable<
26 constexpr auto operator()(Con&& container, Out output, F op, Proj
proj = {})
const
32 template<concepts::InputIterator It1, concepts::SentinelFor<It1> Sent1, concepts::InputIterator It2,
33 concepts::SentinelFor<It2> Sent2, concepts::WeaklyIncrementable Out, concepts::CopyConstructible F,
34 typename Proj1 = function::Identity,
typename Proj2 = function::Identity>
35 requires(concepts::IndirectlyWritable<
37 constexpr auto operator()(It1 first1, Sent1 last1, It2 first2, Sent2 last2, Out output, F op, Proj1 proj1 = {},
38 Proj2 proj2 = {})
const -> InInOutResult<It1, It2, Out> {
39 for (; first1 != last1 && first2 != last2; ++first1, ++first2, ++output) {
42 return { util::move(first1), util::move(first2), util::move(output) };
45 template<concepts::InputContainer Con1, concepts::InputContainer Con2, concepts::WeaklyIncrementable Out,
46 concepts::CopyConstructible F,
typename Proj1 = function::Identity,
47 typename Proj2 = function::Identity>
48 requires(concepts::IndirectlyWritable<
50 meta::Projected<meta::ContainerIterator<Con2>, Proj2>>>)
51 constexpr auto transform(Con1&& r1, Con2&& r2, Out output, F op, Proj1 proj1 = {}, Proj2 proj2 = {})
59constexpr inline auto transform = detail::TransformFunction {};
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 end
Definition end.h:55
constexpr auto transform
Definition transform.h:59
constexpr auto begin
Definition begin.h:52
constexpr auto invoke
Definition invoke.h:100
constexpr auto ref
Definition reference_wrapper.h:98
constexpr auto proj
Definition proj.h:59