Partition a tuple over a predicate.
{
using partition_t = typename partition<Pred, T>::type;
}
Concept specifying a type follows the Product Type semantic.
Definition: concepts.hpp:33
constexpr auto partition(T &&tup) noexcept
Partition a tuple over a predicate.
Definition: partition.hpp:37
Main KUMI namespace.
Definition: algorithm.hpp:11
#include <kumi/tuple.hpp>
#include <type_traits>
#include <iostream>
int main()
{
int a = 4;
double b = 3.1415;
float c = 0.01f;
auto original =
kumi::tuple{a,&a,b,&b,c,&c,
'z',
nullptr};
std::cout << original << "\n";
std::cout << "Pointers first: " << kumi::partition<std::is_pointer>(original) << "\n";
std::cout << "Real first: " << kumi::partition<std::is_floating_point>(original) << "\n";
std::cout << "nullptr first: " << kumi::partition<std::is_null_pointer>(original) << "\n";
}
Fixed-size collection of heterogeneous values.
Definition: tuple.hpp:35