版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433763
C 11支持可变参数模板的特性,真的是很好用。
下面代码实现的print函数,就利用可变参数模板以及函数模板递归调用,实现将任意多个不同类型的参数顺序输出打印到std::ostream
流中。
#include <iostream>
/* 终止递归函数 */
inline void args_print(std::ostream& steam){}
/* 使用可变参数模板实现参数打印到输出流(ostream) (递归调用) */
template<typename T,typename ...Args>
inline void args_print(ostream& std::steam,T first,Args...rest){
steam<< first;
args_print(steam,rest...);//剩余参数递归调用
}