46 template<
typename Execution,
typename ...InputIterators,
typename InputIt,
47 typename OutputIt,
typename Transformer,
49 requires_iterator<InputIt> = 0,
50 requires_iterator<OutputIt> = 0>
51 void map(
const Execution & ex, std::tuple<InputIterators...> firsts,
52 InputIt last, OutputIt first_out,
53 Transformer transform_op)
55 static_assert(supports_map<Execution>(),
56 "map not supported on execution type");
57 ex.map(firsts, first_out,
58 std::distance(std::get<0>(firsts),last), transform_op);
74 template<
typename Execution,
typename ...InputIterators,
75 typename OutputIt,
typename Transformer,
77 requires_iterator<OutputIt> = 0>
78 void map(
const Execution & ex, std::tuple<InputIterators...> firsts,
79 std::size_t range, OutputIt first_out,
80 Transformer transformer_op)
82 static_assert(supports_map<Execution>(),
83 "map not supported on execution type");
84 ex.map(firsts, first_out, range, transformer_op);
98 template <
typename Execution,
typename InputIt,
typename OutputIt,
100 requires_iterator<InputIt> = 0,
101 requires_iterator<OutputIt> = 0>
102 void map(
const Execution & ex,
103 InputIt first, InputIt last, OutputIt first_out,
104 Transformer transform_op)
106 static_assert(supports_map<Execution>(),
107 "map not supported on execution type");
108 ex.map(make_tuple(first), first_out,
109 std::distance(first, last), transform_op);
125 template <
typename Execution,
typename InputIt,
typename OutputIt,
typename Transformer,
126 typename ... OtherInputIts,
127 requires_iterator<InputIt> = 0,
128 requires_iterator<OutputIt> = 0>
129 [[deprecated(
"This version of the interface is deprecated.\n"
130 "If you want to use multiple inputs, use a tuple instead.")]]
131 void map(
const Execution & ex,
132 InputIt first, InputIt last, OutputIt first_out,
133 Transformer transform_op,
134 OtherInputIts ... other_firsts)
136 static_assert(supports_map<Execution>(),
137 "map not supported on execution type");
138 ex.map(make_tuple(first,other_firsts...), first_out,
139 std::distance(first,last), transform_op);
void map(const Execution &ex, std::tuple< InputIterators... > firsts, InputIt last, OutputIt first_out, Transformer transform_op)
Invoke Map pattern on a data sequence.
Definition: map.h:51
Definition: callable_traits.h:21
std::enable_if_t< are_iterators< T... >, int > requires_iterators
Definition: iterator_traits.h:59