关闭

c++-可变参数模板函数

标签: visual studioc语言
353人阅读 评论(0) 收藏 举报
分类:

有些时候我们需要处理不限定个数的参数,处理不同的数据类型,那么最好的解决办法就是可变参数模板,这是c++常用的,当然c语言中也有的。
代码如此

#include <iostream>
/*通用可变参数模板*/
//不加的错误:1>g:\visualstudio2013_projects\类型转换\函数可变参数通用模板\main.cpp(12) : error C2780 : “void showall(T, Args...)” : 应输入 2 个参数,却提供了 0 个
void showall()//空函数,接口
{

}
//使用情景:处理不限定个数的参数,处理不同类型的参数
template <typename T, typename...Args>
//对通用可变参数模板引用如下
//void showall(T &value, Args & ...args)
void showall(T value, Args... args)
{
    std::cout << value << std::endl;
    showall(args...);//继续传递参数,调用的是自己,是递归调用
}

int main()
{
    int num1 = 1;
    int num2 = 2;
    int num3 = 3;
    char c = 'A';
    showall(num1, num2, num3, c);
    std::cin.get();
}
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:122392次
    • 积分:2468
    • 等级:
    • 排名:第14950名
    • 原创:105篇
    • 转载:52篇
    • 译文:0篇
    • 评论:32条
    文章分类
    最新评论