方法一:可变模版参数方法
#include <iostream>
void testFunction_2() //递归终止函数
{
}
template <class T1,class...T2>
void testFunction_2(T1 p,T2... args)
{
cout<<p<<" para count:"<<sizeof... (args)<<endl;
testFunction_2(args...); //递归打印
}
int main ( int argc, char** argv)
{
testFunction_2(1,2,"3333test",4,"55",6);
return 0;
}
方法二:标准库initializer_list方法
#include <initializer_list>
template<typename T>
void ParaDebug::showData(std::initializer_list<T> tList)
{
T iterData = tList.begin();
while ((iterData < tList.end())
{
iterPara->setData(iterData); //使用
iterData ++;
}
}
方法三:
#include <stdarg.h>
void testFunction_1(int arg1,...)
{
va_list ap;
int i;
va_start(ap, arg1);
for (i = arg1; i != -1; i = va_arg(ap, int))
printf("%d ", i);
va_end(ap);
putchar('\n');
}
int main ( int argc, char** argv)
{
testFunction_1(1,2,3,4,5,6,7,1,1,1,11,1,-1);
return 0;
}