KUMI v3.1.0
Exquisite Epidote
Loading...
Searching...
No Matches
Record Types and associated Functions

Definition for kumi defined record type classes and functions. More...

Classes

class  kumi::record< Ts >
 Fixed-size collection of heterogeneous tagged fields, tags are unique. More...

Record construction

template<concepts::identifier auto... Fields, typename... Ts>
constexpr auto kumi::tie (Ts &... ts) -> record< field< decltype(Fields), Ts & >... > requires(sizeof...(Fields)==sizeof...(Ts))
 Creates a kumi::record of lvalue references to its arguments.
template<concepts::identifier auto... Fields, typename... Ts>
constexpr auto kumi::forward_as_record (Ts &&... ts) -> record< field< decltype(Fields), Ts && >... > requires(sizeof...(Fields)==sizeof...(Ts))
 Creates a kumi::record of forwarding references to its arguments.
template<typename... Ts>
constexpr auto kumi::make_record (Ts &&... ts) -> record< std::unwrap_ref_decay_t< Ts >... > requires(concepts::entirely_uniquely_named< Ts... >)
 Creates a record object, deducing the target type from the types of arguments.
template<concepts::record_type R>
constexpr auto kumi::to_ref (R &&r)
 Creates a kumi::record of references given a reference to a kumi::record_type.

Record conversion

template<concepts::record_type Type, typename... Ts>
requires (concepts::equivalent<typename kumi_implementation_defined::type, tuple<Ts...>>)
constexpr auto kumi::from_record (record< Ts... > const &r)
 Converts a kumi::record to an instance of a type that models kumi::record_type.
template<concepts::record_type Type>
constexpr auto kumi::to_record (Type &&r)
 Converts a kumi::record_type to an instance kumi::record.