1. 什么是可变参数模板?
类模板或函数模板能接受参数长度可变的参数列表
2. 如何定义和使用可变参数模板?
模板参数包:Args
函数参数包:args
元运算符:…
访问函数参数包的关键:函数递归调用
详情请看下述代码和注释:
#include <iostream>
void show(){}//接受无参数的show函数
template<typename T>//接受1个参数的show函数
void show(T t){std::cout<<t<<std::endl;}
template<typename T,typename ...Args>//Args模板参数包,下面的args是函数参数包
void show(T t,Args ...args){//接受两个及以上参数的show函数,使用递归的方式展开并访问函数参数包args
show(t);
show(args...);
}
int main(){
char* man="Jiang";
int year=1980;
char *date="11月20日";
double difict=128e9;
show(man,year,date,difict);
return 0;
}
运行结果: