KUMI v4.0.0
Flawless Fluorite
Loading...
Searching...
No Matches
kumi::apply_traits< Traits, Tuple, Seq > Struct Template Reference

Unpacks a product type and applies its element types as arguments to a meta-function. More...

Detailed Description

template<template< typename... > typename Traits, typename Tuple, typename Seq = std::make_index_sequence<size_v<Tuple>>>
requires is_product_type_v<std::remove_cvref_t<Tuple>>
struct kumi::apply_traits< Traits, Tuple, Seq >

Unpacks a product type and applies its element types as arguments to a meta-function.

apply_traits takes a template meta-function (a template template parameter) and a product type. It expands the types contained within the product type and passes them as a parameter pack to the provided Traits.

Template Parameters
TraitsMeta-function to be applied.
TupleThe product type whose elements will be unpacked.

Helper type

namespace kumi
{
template<template<typename...> typename Traits, typename Tuple>
using apply_traits_t = typename apply_traits<Traits, Tuple>::type;
}
Main KUMI namespace.
Definition algorithm.hpp:11
Unpacks a product type and applies its element types as arguments to a meta-function.
Definition traits.hpp:579

Example

// Equivalent to std::common_type<int, float, char>::type
using common = kumi::apply_traits_t<std::common_type, my_tuple>;
Fixed-size collection of heterogeneous values.
Definition tuple.hpp:33