V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuelang
V2EX  ›  推广

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

  •  1
     
  •   xuelang · 229 天前 · 808 次点击
    这是一个创建于 229 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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


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

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

    @Livid 这个号最近的文章都带了链接
    Livid
        4
    Livid  
    MOD
       228 天前
    @abelyao 谢谢。这个主题已经被移动。

    @xuelang

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

    不过你觉得搬运推广的话,我也无话可说~
    jones2000
        8
    jones2000  
       225 天前
    @xuelang 指针是 c++一大特色,也是防御性编程的一个有利的武器。
    xuelang
        9
    xuelang  
    OP
       225 天前
    防御性编程。。。 是我理解的那个意思吗(故意写的别人很难懂)
    augustheart
        10
    augustheart  
       225 天前   ❤️ 1
    @xuelang 必须这样说清楚啊。可变参函数是 c 那套东西,从原理到实现都完全不相同
    xuelang
        11
    xuelang  
    OP
       225 天前
    @augustheart 嗯嗯,确实这样更清晰些。感谢指出
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:31 · PVG 15:31 · LAX 23:31 · JFK 02:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.