template<concepts::product_type Tuple, typename Function , concepts::sized_product_type< size_v< Tuple > >... Tuples>
requires (concepts::compatible_product_types<Tuple, Tuples...> && _::supports_call<Function, Tuple &&, Tuples && ...>)
| constexpr auto kumi::map |
( |
Function |
f, |
|
|
Tuple && |
t0, |
|
|
Tuples &&... |
others |
|
) |
| |
|
inlineconstexpr |
Apply the Callable object f on each tuples' elements.
Applies the given function to all the tuples passed as arguments and stores the result in another tuple, keeping the original elements order.
- Note
- Does not participate in overload resolution if tuples' size are not equal or if
f can't be called on each tuple's elements.
- Parameters
-
| f | Callable function to apply |
| t0 | Tuple to operate on |
| others | Tuples to operate on |
- Returns
- The tuple of
f calls results.
Helper type
namespace kumi::result
{
template<
typename Function, product_type T, product_type... Ts>
struct map;
template<typename Function, product_type T, product_type... Ts>
using map_t = typename map<Function,Tuple>::type;
}
Computes the return type of a call to kumi::map
Example
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
auto res =
kumi::map( [](
auto l,
auto r) {
return l*r; }, lhs, rhs);
std::cout << res << "\n";
}
Fixed-size collection of heterogeneous values.
Definition tuple.hpp:32