C++11:可变参数模板实现print输出参数

2019-05-25 22:38:36 浏览数 (1)

版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433763

C 11支持可变参数模板的特性,真的是很好用。

下面代码实现的print函数,就利用可变参数模板以及函数模板递归调用,实现将任意多个不同类型的参数顺序输出打印到std::ostream流中。

代码语言:javascript复制
#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...);//剩余参数递归调用
}

0 人点赞