template<product_type Tuple, typename Function , sized_product_type< size_v< Tuple > >... Tuples>
requires ( 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
{
using map_t = typename map<Function,Tuple>::type;
}
Concept specifying a type follows the Product Type semantic.
Definition concepts.hpp:33
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:37