C++11 可变参数

C++11的可变参数模板,对参数进行了高度的泛化,可以表示

  • 任意数目
  • 任意类型
    语法为 class或者typename后面加…
Template<class ... T>void func(T ... args)
{
	cout<<”num is”<<sizeof ...(args)<<endl;
}

T 叫模板参数包
args 叫函数参数包

省略号的作用
  1. 说明一个包含0到n任意模板参数的参数包
  2. 在模板定义的右边,可以将参数展成一个个独立的参数
    C++11可以使用递归函数的方式展开参数包,获得每个参数的值。那么就需要
  • 一个参数包展开的函数
  • 一个递归终止的函数

两个函数若是重载,谁比较特化,就调用谁

int maximum(int n){	
	return n;
}
template<typename... Args>
int maximum(int n, Args...args)
{	
	return std::max(n, maximum(args...));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值