enumeration.hpp serif/utils/misc/concepts/concat.hpp serif/utils/types/type_list.hpp serif::utils::misc::concepts::EnumerateTypes< types::TypeList< TypeTs... >, Descriptor > serif serif::utils serif::utils::misc serif::utils::misc::concepts #pragmaonce #include"serif/utils/misc/concepts/concat.hpp" #include"serif/utils/types/type_list.hpp" namespaceserif::utils::misc::concepts{ //MightmakesensetorenamethesetoFlatMaporsomesuch template<typenameTypeList,template<typename>typenameDescriptor> structEnumerateTypes; template<template<typename>typenameDescriptor,typename...TypeTs> structEnumerateTypes<types::TypeList<TypeTs...>,Descriptor>{ usingType=ConcatT<Descriptor<TypeTs>...>; }; template<typenameTypeList,template<typename>typenameDescriptor> usingEnumerateTypesT=EnumerateTypes<TypeList, Descriptor>::Type; }