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

Definition for product types traits and extension points. More...

Topics

 Record Related Traits
 Definition for kumi::record traits and extension points.
 Tuple Related Traits
 Definition for kumi::tuple traits and extension points.

Classes

struct  kumi::apply_traits< Traits, T, Seq >
 Unpacks a product type and applies its element types as arguments to a meta-function. More...
struct  kumi::common_product_type< Ts >
 Extracts the common product_type of a parameter pack. More...
struct  kumi::map_traits< Traits, T, Seq >
 Applies a unary meta-function to each element of a product type. More...
struct  kumi::stored_member< I, T >
 Computes the return type of a call to kumi::get on a kumi::tuple and unwrap the field returned by kumi::get on a kumi::record. More...

Typedefs

template<typename T>
using kumi::container_type_t = decltype(kumi_implementation_defined(std::declval<T>()))
 Provides access to the type of the elements of a kumi::concepts::container.
template<std::size_t I, typename T>
using kumi::element_t = std::tuple_element_t<I, std::remove_cvref_t<T>>
 Provides indexed access to the types of the elements of a kumi::product_type.
template<std::size_t I, typename T>
using kumi::member_t = decltype(get<I>(std::declval<T&&>()))
 Computes the return type of a call to kumi::get.

Variables

template<typename... Ts>
constexpr bool kumi::all_unique_names_v = kumi_implementation_defined
 Checks if a parameter pack only contains distinct kumi::field names. Evaluates to false if no type is a kumi::field.
template<typename... Ts>
constexpr bool kumi::all_uniques_v = kumi_implementation_defined
 Checks if a parameter pack only contains distinct types.
template<typename T>
constexpr std::size_t kumi::container_size_v = kumi_implementation_defined
 Returns the statically known number of elements of a kumi::container.
template<typename T>
constexpr bool kumi::has_static_size_v
 Detects if a given kumi::container instance size is static.
template<typename T>
constexpr bool kumi::is_container_v = kumi_implementation_defined
 Traits detecting types behaving like a kumi::container.
template<typename T, typename U>
constexpr bool kumi::is_equality_comparable_v = false
 Checks if a two product types are comparable for equality.
template<typename T, typename U>
constexpr bool kumi::is_equivalent_v = false
 Checks if a two product types are equivalent.
template<typename T, typename U>
constexpr bool kumi::is_instance_of_v = false
 Checks if a type is an instance of a specific template.
template<typename T>
constexpr bool kumi::is_product_type_v = kumi_implementation_defined
 Detects if a type follows the tuple protocol.
template<typename T>
constexpr bool kumi::is_projection_map_v = requires { T::is_projection_map; }
 Checks if a type can be used as a kumi::projection_map.
template<typename T>
constexpr bool kumi::is_record_type_v = requires { typename T::is_record_type; } && kumi_implementation_defined
 Opt-in traits for types behaving like a kumi::record_type.
template<typename T>
constexpr std::size_t kumi::size_v = std::tuple_size<std::remove_cvref_t<T>>::value
 Computes the number of elements of a kumi::product_type.