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... | |