通用模板实现可变参数函数

 1 //模板
 2 template <class T>
 3 T getMax(T a, T b)
 4 {
 5     return a > b ? a :b;
 6 }
 7 
 8 
 9 template<typename T>
10 T MAX(T *p, const int n)
11 {
12     T max = p[0];
13     for(int i = 1; i < n; i++)
14     {
15         if(max < p[i])
16         {
17             max = p[i];
18         }
19     }
20     return max;
21 }
22 
23 
24 //模板实现参数可变函数
25 template <typename T>
26 T get_sum(T count, T data, ...)
27 {
28     va_list arg_prt;
29     va_start(arg_prt, count);
30     T sum = 0;
31     for(int i = 0; i < count; i++)
32     {
33         sum += va_arg(arg_prt, T);
34     }
35     va_end(arg_prt);
36     return sum;
37 }


下面这个是可变参数模板

 1 void showall()   //空函数,接口
 2 {
 3 
 4 }
 5 
 6 //通用可变参数模板 处理不限定个数的参数,处理不同类型
 7 template <typename T, typename...Args>
 8 void showall(T value, Args...args)
 9 {
10     cout<<"value = "<<value<<"  ";
11     showall(args...);
12 }
原文地址:https://www.cnblogs.com/newworldcom/p/4982175.html