c++ 可变参数模板—-从求和说起
1. 两个参数的整数求和函数
int sum(int x,int y)
{
return x+y;
}
2. 两个参数的浮点数求和函数
int sum(float x,float y)
{
return x+y;
}
模板实现:
template<typename T>
T sum(T x, T y)
{
return x+y;
}
3. 一个整数一个浮点数的求和函数
int sum(int x,float y)
{
return x+y;
}
int sum(float x,int y)
{
return x+y;
}
模板实现:
template<typename T,typename U>
T sum(T x,U y)
{
return x+y;
}
4. 多个整数求和
int sum(int x,int y ,int z)
{
return x+y+z;
}
int sum(int x,int y,int z,int a)
{
return x+y+z+a;
}
....
5. 多个浮点数求和
float sum(float x,float y ,float z)
{
return x+y+z;
}
float sum(float x,float y,float z,float a)
{
return x+y+z+a;
}
....
模板方法:
template<typename T>
T sum(T x,T args...)
{
return x+sum(args...);
}
template<typename T>
T sum(T x)
{
return x;
}