首页 > 其他分享 >可变参数模板

可变参数模板

时间:2022-08-27 16:13:20浏览次数:65  
标签:... cout void 解包 参数 可变 print 模板

获取参数个数

template <class... T>
void f(T... args)
{    
    cout << sizeof...(args) << endl; //打印变参的个数
}

f();        //0
f(1, 2);    //2
f(1, 2.5, "");    //3

获取参数

每次获取几个参数,取决于参数包前面有几个参数,并且调用的时候,参数数量必须是每次解包参数的倍数。

template <class T, class ...Args>

// 参数包前面只有一个参数,每次解包只需要解 1个即可。调用时 print(); print(1); print(1, 2); 等等都是可以的。
void print(T head, Args... rest)             

// 参数包前面有两个参数,每次解包需要解 2个。 在调用的时候,参数个数必须是 2 的倍数。print(); print(1, 2); print(1, 2, 3, 4) 这些是正确的。
// print(1, 2, 3); 这个就是错误的,编译不通过。
void print(T head, T head2, Args... rest)     
void print()
{
        cout << "empty()" << endl;
}

template <typename T, typename ... Args>
void print(T head, T head2, Args ... args)
{
        cout << "Head: " << head << ", " << head2 << endl;
        print(args...);
}

int main()
{
        cout << "print()" << endl;
        print();


        //cout << "print(1)" << endl;
        //print(1);

        cout << "print(1, 2)" << endl;
        print(1, 2);

        cout << "print(1, 2, 3, 4)" << endl;
        print(1, 2, 3, 4);
}

标签:...,cout,void,解包,参数,可变,print,模板
From: https://www.cnblogs.com/ramlife/p/16630769.html

相关文章

  • ASEMI整流桥KBP410参数,KBP410厂家,KBP410货源
    编辑-ZASEMI整流桥KBP410参数:型号:KBP410最大重复峰值反向电压(VRRM):1000V最大RMS电桥输入电压(VRMS):700V最大平均正向整流输出电流(IF):4A峰值正向浪涌电流(IFSM):80A每个元件......
  • smarty模板引擎中变量及变量修饰器用法实例
    smarty模板引擎中变量及变量修饰器用法实例_php实例_脚本之家 https://www.jb51.net/article/60243.htm本文实例讲述了smarty变量及变量修饰器的应用。分享给大家供大家......
  • springBoot 获取注解参数的原理
    springBoot获取注解参数的原理原理图先得到请求的request在获取可以处理请求的方法的Mapping映射器DispatcherServlet中的doDispatch方法//De......
  • add_argument()方法基本参数使用
    selenium做web自动化时我们想要通过get打开一个页面之前就设置好一些基本参数,需要通过add_argument()方法来设置,下面以一个简单的不展示窗口为例。option=webdriver.C......
  • 【IAP Kit】应用内支付订单参数相关问题解析
    ​1、创建的订单orderId长度是多少?答:orderId的长度最大是255。 2、InappPurchaseDetails中orderId和payOrderId有什么区别呢?答:orderId和payOrderId这两者的区别如下:o......
  • EYOUCMS模板如何打包备份(搬家教程)
    1,本地备份数据库2,删除install_********目录下的install.lock文件3,再改名install_1540256968为install4,删除data/runtime所有文件夹5,打包根目录下所有文件,上传空间解压即......
  • IDEA的模板及配置
    什么是模板什么是模板?简单的理解就是配置一些字母缩写。使用简写的方式,就能出现预定义的固定代码。这样做可以大大提高开发效率。最常见的就是输入 sout就会出现 Syst......
  • Shopify Spark主题模板配置修改
    对于那些正在启动业务的shopify卖家来说,Spark主题是很好的选择,它跨越了你的愿景和市场之间的差距,将美感和必要性结合在一起,这样你就可以用最小的触角将事情进行下去。通过......
  • vue3 基础-常用模板语法
    一个vue的单文件SAP(singlepagewebapplication)即在一个.vue为后缀的文件中,会包含3个部分.模板:html逻辑:javascript样式:css这种同时存在,然......
  • DESTOON标签(tag)调用手册 模板制作参考手册
    什么是标签调用?标签调用是根据调用条件(condition)从数据表(table)读取调用数量(pagesize)条数据,并按排序方式(order)排序,最终通过标签模板的布局输出数据。可以看出,标签的......