cmoon::meta::transform_types


Defined in module <cmoon.meta>


template<template<class> class Function, typename... Ts>
using transform_types = /* see below */;


(1)

Type alias for a type_list<Ts...> where each T in Ts... is typename Function<T>::type

Example



import <cstdint>;
import <concepts>;
import <type_traits>;

import cmoon.meta;

int main()
{
    using tl = cmoon::meta::transform_types<std::make_unsigned, std::int8_t, std::int16_t, std::int32_t, std::int64_t>;

    static_assert(std::same_as<tl::type<0>, std::uint8_t>);
    static_assert(std::same_as<tl::type<1>, std::uint16_t>);
    static_assert(std::same_as<tl::type<2>, std::uint32_t>);
    static_assert(std::same_as<tl::type<3>, std::uint64_t>);
}