C++中函数如何支持可变参的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuelang
V2EX    推广

C++中函数如何支持可变参的?

  •  1
     
  •   xuelang 2024 年 5 月 7 日 1368 次点击
    这是一个创建于 681 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面这些问题你答的出来不?

  • C++ 函数是怎么支持可变参的?
  • C++ 可变参是如何不断迭代实现的?
  • 可变参中类型安全是什么意思?
  • 怎么验证编译器的展开代码?
  • 可变参在哪些开源库有应用?
  • 完整见我的个人博客 C++ 函数可变参实现方法的演进


    注意:在 和 ChatGPT 结对,通过提问并验证的方式来学习和总结这里可变参的实现,整体对话可以查 ChatGPT - Variadic Templates in C++

    11 条回复    2024-05-11 11:45:06 +08:00
    jones2000
        1
    jones2000  
       2024 年 5 月 7 日
    搞这么复杂干什么呢,指针数组不就完事了。
    func( vector<void*> ) 要多少个参数都行。
    augustheart
        2
    augustheart  
       2024 年 5 月 7 日
    建议先理解区分可变参函数和可变参模板
    abelyao
        3
    abelyao  
       2024 年 5 月 7 日   1
    @jones2000 @augustheart 人家就是来发广告的,别太认真

    @Livid 这个号最近的文章都带了链接
    Livid
        4
    Livid  
    MOD
    PRO
       2024 年 5 月 7 日
    @abelyao 谢谢。这个主题已经被移动。

    @xuelang

    如果你要搬运链接推广,请发送到 /go/promotions 节点。你的账号上目前会有 -8 的降权。
    xuelang
        5
    xuelang  
    OP
       2024 年 5 月 10 日
    @jones2000 指针数组的话,缺了类型安全
    xuelang
        6
    xuelang  
    OP
       2024 年 5 月 10 日
    @augustheart 这里应该是用可变参模板实现可变参函数,这样理解可以吧?
    xuelang
        7
    xuelang  
    OP
       2024 年 5 月 10 日
    @Livid 其实也不是搬运推广,纯技术交流,只是发在个人博客,不想再复制内容过来。

    不过你觉得搬运推广的话,我也无话可说~
    jones2000
        8
    jones2000  
       2024 年 5 月 10 日
    @xuelang 指针是 c++一大特色,也是防御性编程的一个有利的武器。
    xuelang
        9
    xuelang  
    OP
       2024 年 5 月 11 日
    防御性编程。。。 是我理解的那个意思吗(故意写的别人很难懂)
    augustheart
        10
    augustheart  
       2024 年 5 月 11 日   1
    @xuelang 必须这样说清楚啊。可变参函数是 c 那套东西,从原理到实现都完全不相同
    xuelang
        11
    xuelang  
    OP
       2024 年 5 月 11 日
    @augustheart 嗯嗯,确实这样更清晰些。感谢指出
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5422 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:00 PVG 15:00 LAX 00:00 JFK 03:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86