提示:这里描述项目中遇到的问题:
想要尝试使用可变参模板,但是报错
templatevoid print(T firstArg, Types... args) { std::cout << firstArg << 'n'; //print first argument print(args ...);// call print() for remaining arguments }
原因分析:
提示:这里填写问题的分析:
忽略了对于0参数的考虑
解决方案:提示:这里填写该问题的具体解决方案:
在模板前面添加
void print() {}
或者使用第2种重载方式
templatevoid print (T arg) { std::cout << arg << ’n’; //print passed argument } template void print (T firstArg, Types… args) { print(firstArg); // call print() for the first argument print(args…); // call print() for remainingarguments }
两种方式区别的是 对模板选择的不同
总结:注意细节,模板的一些错误都不是直观的,要时刻注意!



