C++中函数如何支持可变参的? - V2EX
如果想在 V2EX 获得更好的推广效果,欢迎了解 PRO 会员机制:
pro/about

如果你经常使用铜币置顶主题,持有 V2EX Solana Token 会在每日签到时获得额外铜币:
solana
xuelang

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

  •  1
     
  •   xuelang May 7, 2024 1502 views
    This topic created in 752 days ago, the information mentioned may be changed or developed.

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

    1. C++ 函数是怎么支持可变参的?
    2. C++ 可变参是如何不断迭代实现的?
    3. 可变参中类型安全是什么意思?
    4. 怎么验证编译器的展开代码?
    5. 可变参在哪些开源库有应用?

    完整见我的个人博客 C++ 函数可变参实现方法的演进


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

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

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

    @xuelang

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

    不过你觉得搬运推广的话,我也无话可说~
    jones2000
        8
    jones2000  
       May 10, 2024
    @xuelang 指针是 c++一大特色,也是防御性编程的一个有利的武器。
    xuelang
        9
    xuelang  
    OP
       May 11, 2024
    防御性编程。。。 是我理解的那个意思吗(故意写的别人很难懂)
    augustheart
        10
    augustheart  
       May 11, 2024   1
    @xuelang 必须这样说清楚啊。可变参函数是 c 那套东西,从原理到实现都完全不相同
    xuelang
        11
    xuelang  
    OP
       May 11, 2024
    @augustheart 嗯嗯,确实这样更清晰些。感谢指出
    About     Help     Advertise     Blog     API     FAQ     Solana     2709 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 65ms UTC 01:16 PVG 09:16 LAX 18:16 JFK 21:16
    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