kumi v3.1.0
Exquisite Epidote
Loading...
Searching...
No Matches
Helper Types and Functions

Tools for interacting with kumi::tuple. More...

Classes

class  kumi::boolean_and
 A type representing the logical and monoid and it's associated identity. The identity of the boolean_and is true. More...
class  kumi::boolean_or
 A type representing the logical or monoid and it's associated identity. The identity of boolean_or is false. More...
class  kumi::boolean_xor
 A type representing the logical xor monoid and it's associated identity. The identity of boolean_xor is false. More...
class  kumi::builder< T >
 Helper structure to build the correct output product_type. If the provided Product type is a not a record_type the builder will output a tuple otherwise a record. More...
struct  kumi::identifier< ID, Checker >
 identifier definition class More...
struct  kumi::index_t< N >
 Integral constant type. More...
class  kumi::indexes_t< V >
 Compile time tuple of index used to pass several indexes_t as NTTP. More...
struct  kumi::name< ID >
 Compile-time text based ID. More...
class  kumi::numeric_add
 A type representing the addition monoid with it's associated identity. The identity of the addition is 0. More...
class  kumi::numeric_prod
 A type representing the multiplication monoid with it's associated identity. The identity of the multiplication is 1. More...
class  kumi::str
 Static string used to create named fields. More...
class  kumi::unit
 A type representing the product of no type also called the unit type. More...
struct  kumi::unknown
 Type indicating a identifier was not found in a given kumi::product_type. More...

Functions

template<concepts::product_type Tuple>
requires (size_v<Tuple> != 0)
constexpr decltype(auto) kumi::back (Tuple &&t)
 Retrieves the back of a tuple.
template<typename T>
constexpr decltype(auto) kumi::field_value_of (T &&t) noexcept
 Extracts the value from a kumi::field or returns the parameter.
template<concepts::product_type Tuple>
requires (size_v<Tuple> != 0)
constexpr decltype(auto) kumi::front (Tuple &&t)
 Retrieves the front of a tuple.
template<concepts::identifier Name, concepts::product_type T>
consteval auto kumi::get_index_of_field ()
 Helper to retrive the index of a type in a product type by it s name.
template<typename U, concepts::product_type T>
consteval auto kumi::get_index_of_type ()
 Helper to retrive the index of a type in a product type by it s type.
template<concepts::indexer... Ts>
consteval auto kumi::indexes (Ts... ts) noexcept
 Creates a kumi::indexes object, deducing the target type from the types of arguments.
template<concepts::indexer... Ts>
KUMI_CUDA kumi::indexes_t (Ts...) -> indexes_t< Ts... >
 kumi::indexes_t deduction guide
template<typename C, typename... Ts>
requires (std::is_invocable<C, Ts...>::value)
constexpr decltype(auto) kumi::invoke (C &&c, Ts &&... ts) noexcept(std::is_nothrow_invocable< C, Ts... >::value)
 Invoke the Callable object c with a pack of arguments.
template<typename R, typename C, typename... Ts>
requires (std::is_invocable_r<R, C, Ts...>::value)
constexpr R kumi::invoke_r (C &&c, Ts &&... ts) noexcept(std::is_nothrow_invocable_r< R, C, Ts... >::value)
 Invoke the Callable object c with a pack of arguments with return type R.
template<valid_display_name T>
consteval str kumi::_::make_str (T const &t)
 Provides an extension point to_str in order to output types with no textual representation defined.
template<typename T>
auto kumi::_::make_streamable (T const &e)
 Provides an extension point as_streamable in order to output values of types with no stream operator defined.
template<typename Target, concepts::product_type T>
constexpr auto kumi::member_cast (T &&t)
 Converts a product_type<Ts...> to an instance of a product_type<Target...>.
template<typename T>
consteval auto kumi::name_of () noexcept
 Extracts the name from a kumi::field or returns the parameter.
template<char... c>
constexpr auto kumi::operator""_c () noexcept
 Forms a integral constant literal of the desired value.
template<kumi::str ID>
constexpr auto kumi::operator""_id () noexcept
 Forms a constant string literal of the desired value.
template<template< class > class Pred>
constexpr auto kumi::predicate () noexcept
 Convert a unary template meta-program in a running predicate.

Variables

constexpr boolean_and kumi::function::bit_and {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the logical and operation.
constexpr boolean_or kumi::function::bit_or {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the logical or operation.
constexpr boolean_xor kumi::function::bit_xor {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the logical xor operation.
template<template< class > typename Traits>
constexpr traits_check< Traits > kumi::if_ = {}
 Option specifying a traits that type should verify for being used as a identifier value.
template<std::size_t N>
constexpr index_t< N > const kumi::index = {}
 Inline integral constant value for kumi::index_t.
constexpr numeric_prod kumi::function::multiplies {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the multiplication.
constexpr unit kumi::none = {}
 Inline constant representing a kumi::unit.
template<typename T>
constexpr only_t< T > kumi::only = {}
 Option specifying the single type a identifier will accept.
constexpr numeric_add kumi::function::plus {}
 Forms a binary monoid callable that can be used in kumi::algoritm. It represents the addition.