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

Applies a unary meta-function to each element of a product type. 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::map_traits< Traits, Tuple, Seq >

Applies a unary meta-function to each element of a product type.

map_traits transforms a product type by applying a given meta-function Traits to every element type individually. The result is a new product type containing the transformed types.

Template Parameters
TraitsUnary meta-function to apply to each element.
TupleThe product type to transform.

Helper type

namespace kumi
{
template<template<typename...> typename Traits, typename Tuple>
using map_traits_t = typename map_traits<Traits, Tuple>::type;
}
Main KUMI namespace.
Definition algorithm.hpp:11
Applies a unary meta-function to each element of a product type.
Definition traits.hpp:626

Example

// Result: kumi::tuple<int*, double*, char*>
using ptr_tuple = kumi::map_traits_t<std::add_pointer, my_tuple>;
Fixed-size collection of heterogeneous values.
Definition tuple.hpp:33