KUMI v4.0.0
Flawless Fluorite
Loading...
Searching...
No Matches
Product Type Generators

Algorithms generating product types. More...

Variables

constexpr all_unique_t kumi::all_unique {}
 Callable object returning a product type containing the values of the first occurence of each type in t.
constexpr as_flat_ptr_t kumi::as_flat_ptr {}
 Callable object converting recursively a product type of product types into a flat product type of pointers to each of its components.
constexpr cartesian_product_t kumi::cartesian_product {}
 Callable object returning the Cartesian Product of all elements of its arguments product types.
constexpr cat_t kumi::cat {}
 Callable object concatenating multiple product types into a single one.
template<std::size_t N>
constexpr tiles_t< N, N > kumi::chunks {}
 Callable object creating a tuple of product types, each containing N consecutive elements from t. Chunks starts at 0 and advance by N element each time.
constexpr compress_t kumi::compress {}
 Callable object converting a product type of product type into a single product type recursively, or returns the input.
constexpr extract_t kumi::extract {}
 Callable object extracting a sub product type from a product type.
template<std::size_t N>
constexpr fill_t< N > kumi::fill {}
 Callable object creating a kumi::tuple containing N copies of v.
template<template< typename > typename Pred>
constexpr filter_t< Pred > kumi::filter {}
 Callable object filtering a product type over a predicate.
template<template< typename > typename Pred>
constexpr filter_not_t< Pred > kumi::filter_not {}
 Callable object filtering a product type over a predicate.
constexpr flatten_t kumi::flatten {}
 Callable object converting a product type of product types into a product type of all elements.
constexpr flatten_all_t kumi::flatten_all {}
 Callable object converting recursively a product type of product types into a product type of all elements.
template<std::size_t N>
constexpr generate_t< N > kumi::generate {}
 Callable object creating a kumi::tuple containing N applications of the f Callable.
template<std::size_t N>
constexpr iota_t< N > kumi::iota {}
 Callable object creating a kumi::tuple containing an increasing ramp of values.
template<typename T>
constexpr member_cast_t< T > kumi::member_cast {}
 Callable object converting a product_type<Ts...> to an instance of a product_type<Target...>.
template<template< typename > typename Pred>
constexpr partition_t< Pred > kumi::partition {}
 Callable object partitionning a product type over a predicate.
constexpr pop_front_t kumi::pop_front {}
 Callable object removing the first (if any) element of t.
constexpr push_front_t kumi::push_front {}
 Callable object constructing a product type by adding a value v at the beginning of t.
template<kumi::concepts::projection_map auto Projections>
constexpr reindex_t< Projections > kumi::reindex {}
 Callable object reindex elements of a Product Type.
constexpr remove_t kumi::remove {}
 Callable object removing a sub product type from a product type.
template<std::size_t... I>
constexpr reorder_t< I... > kumi::reorder {}
 Callable object reordering elements of a product type.
template<kumi::concepts::identifier auto... Name>
constexpr reorder_fields_t< Name... > kumi::reorder_fields {}
 Callable object reordering elements of a Record Type.
template<std::size_t R>
constexpr rotate_left_t< R > kumi::rotate_left {}
 Callable object.
template<std::size_t R>
constexpr rotate_right_t< R > kumi::rotate_right {}
 Callable object.
constexpr split_t kumi::split {}
 Callable object splitting a product type into two.
template<std::size_t N, std::size_t O>
constexpr tiles_t< N, O > kumi::tiles {}
 Callable object creating a tuple of product types, each containing N consecutive elements from t. Tiles starts at 0 and advance by O element each time.
constexpr transpose_t kumi::transpose {}
 Callable object transposing a product type of product types by shifting elements in their transposed position always returning a tuple as the external product type.
constexpr unique_t kumi::unique {}
 Callable object returning a product type with consecutive duplicate types removed (pairwise uniqueness).
template<std::size_t N>
constexpr tiles_t< N, 1 > kumi::windows {}
 Callable object creating a tuple of product types, each containing N consecutive elements from t. Windows starts at 0 and advance by 1 element each time.
constexpr zip_t kumi::zip {}
 Callable object constructing a tuple where the ith element is the product type of all ith elements of t0,ts...
constexpr zip_max_t kumi::zip_max {}
 Callable object constructing a tuple where the ith element is the product type of all ith elements of t0,ts...
constexpr zip_min_t kumi::zip_min {}
 Callable object constructing a tuple where the ith element is the product type of all ith elements of t0,ts...