通用可变参数模板 处理不限定个数的参数,处理不同类型
//设计可以修改原来的数据的 T &value, Args &…args
//设计可以修改副本 T value, Args …args
//设计不可以可以改原来的数据不可以修改副本 const T value, const Args …args
//设计引用原来的数据不可以修改 const T &value, const Args &…args
#include <iostream>
void showall()//空函数,接口,最后结束递归 新版本编译
{
}
template<typename T,typename...Args>
void showall(const T &value, const Args &...args)
{
std::cout << value << std::endl;
showall(args...);//继续传递
}
void main()
{
int num1 = 10, num2 = 9, num3 = 11;
double db1 = 10.8, db2 = 10.9;
char str[40] = "yincheng";
char ch = 'A';
showall(num1);
std::cout << "\n\n\n";
showall(num1,num2,num3);
std::cout << "\n\n\n";
showall(db1, db2, num1, ch);
std::cout << "\n\n\n";
showall(db1, db2, num1, ch,str);
std::cin.get();
}