Oh man, some of the code in the linked proposal: Old: template struct list {}; using types = list ; constexpr auto sizes = [] class L, class... T>(L ) { return std::array {{ sizeof(T)... }}; }(types{}); New: constexpr std::array types = {^^int, ^^float, ^^double}; constexpr std::array sizes = []{ std::array r; std::ranges::transform(types, r.begin(), std::meta::size_of); return r; }(); I'm so tired of parameter packs…
constexpr std::array types = {^^int, ^^float, ^^double};
auto sizes = std::whatever::transform(types, std::meta::size_of);
which would have been even nicer.