可变长函数参数模板

#include <iostream>


//通用可变参数模板    处理不限定个数的参数,处理不同类型



void showall()//空函数,接口,最后结束递归  新版本编译  强制预留接口
{

}


template<typename T,typename...Args>   /// ...可变长度!!!!
void showall(const T &value, const Args &...args)
{
	std::cout << value << std::endl;
	showall(args...);//继续传递 采用上式viod showall 进行结束递归

}

//设计可以修改原来的数据的  T &value,  Args &...args
//设计可以修改副本    T value,  Args ...args
//设计不可以可以改原来的数据不可以修改副本 const T value,  const Args ...args
//设计引用原来的数据不可以修改 const  T &value,  const Args &...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();
}

猜你喜欢

转载自blog.csdn.net/qq_31339017/article/details/80283466