【发布时间】:2016-07-25 06:02:48
【问题描述】:
我想在可变参数模板包中扩展数组或向量。 考虑以下示例:
template <typename T>
int GetArgValue(std::string name,T& value){
cout<<"GetArgumentValue(): name="<<name<<", val="<<value<<endl;
//Set value
//...
return 0;
}
template<typename ... Tn>
int GetArgValues(std::vector<std::string> keys, Tn&... values){
//Check sizes
//...
//Call GetArg over pack
int retCodes[] = { GetArgValue(keys,values)...};//not possible
//...
return 0;
}
是否可以与包一起扩展数组或向量?如果不是这个用例的合适方法是什么? 我想最终实现的目标如下:
double arg1;
int arg2;
std::string arg3;
GetArgValues({"firstArg","secondArg","thirdArg"},arg1,arg2,arg3);
甚至更好(如果可能的话):
GetArgValues( {"firstArg",arg1}, {"secondArg",arg2}, {"thirdArg", arg3} );
希望这个例子很清楚。 谢谢大家的建议。
【问题讨论】: