Recursively converts a tuple of tuples into a tuple of all elements.
Recursively converts a tuple of tuples t
into a tuple of all elements of said tuples. If the Callable object f is provided, non-tuple elements are processed by f
before being inserted.
- Parameters
-
ts | Tuple to flatten |
f | Optional Callable object to apply when a sub-tuple is flattened |
- Returns
- A tuple composed of all elements of t flattened recursively
Helper type
namespace kumi::result
{
template<product_type Tuple,
typename Func =
void>
struct flatten_all;
template<product_type Tuple, typename Func = void>
using flatten_all_t = typename flatten_all<Tuple, Func>::type;
}
constexpr auto flatten_all(Tuple &&ts, Func &&f)
Recursively converts a tuple of tuples into a tuple of all elements.
Definition: flatten.hpp:84
Computes the return type of a call to kumi::flatten_all
Example
#include <kumi/tuple.hpp>
#include <iostream>
int main()
{
std::cout << r << "\n";
, [](auto e) { return sizeof(e); }
);
std::cout << sz << "\n";
}
Fixed-size collection of heterogeneous values.
Definition: tuple.hpp:35