我是新手,我不知道元编程,我正在尝试转换这样的列表Typelist<std::array<long, 10>, std::array<float, 10>, std::array<char, 10>>
中的Typelist<long, float, char>
#include <iostream>
template<typename... Ts>
struct Typelist {};
template <typename List>
struct front{};
template<typename Head, typename... Tail>
struct front<Typelist<Head, Tail...>>
{
using type = Typelist<std::array<Head, 10>, front<Typelist<Tail...>>>;
};
void seetype(auto) {std::cout << __PRETTY_FUNCTION__ << std::endl;}
int main()
{
using list_of_types = Typelist<long, float, char>;
using arrays_of_types = front<list_of_types>::type;
seetype(arrays_of_types{});
return 0;
}
字符串
结果是这样
void seetype(auto) [auto:1 = Typelist<std::array<long, 10>, front<Typelist<float, char>>>]
型
只有第一种是好的,休息不好......什么是错的
1条答案
按热度按时间cgh8pdjw1#
你的代码有几个问题:
字符串
不是修改的类型,则需要
型
(这是一个
Typelist
)那么递归的基本情况不被处理:型
这样,得到的类型没有正确地连接Demo,所以:
型
和
型
Demo的
但是你根本不需要递归:
型
就足够了:
Demo的
更一般的是:
型
Demo的