如何设计一个可变参数个数的模板
类似一个excel表格的一行, 每个单元格类型可以不一致, 每行的单元格数量不定
对于类型可以用模板实现, 可变数量的话怎么办呢
或者说为了实现这个功能,有没有别的思路。
[解决办法]
以前写数据库的时候考虑过这个问题,即如何写插入函数(一条记录若干字段,字段类型均可不同). 模板由于无法动态定义参数数量所以无法解决. 我可以提供一种思路:将所有参数当做字符串来处理,加一组参数来定义每个字串的类型,比如整形浮点或者字符串.
比如函数
void method(string paras[],int types[],int length){
for(0~length){
switch(types[i])
{
case INT:
int para=atoi(paras[i].c_str()),
...
break;
case FLOAT:
...
break;
}
}
}
调用:
string user[]={"1","张三","男","55.8"};//编号,姓名,性别,体重
int types[]={INT,STRING,CHAR,FLOAT};
method(user,types,4);
此外也可以直接用map键值对
void method(map<string,int> paraMap)
调用:
map<string,int> user;
user.insert("1",INT);
user.insert("张三",STRING);
...
[解决办法]
Code Generation
[解决办法]
c++1x有变长参数模板