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

看了 decltype()和 decltype(())的区别,请问为啥这个语法这么设计啊?感觉真不合理

  •  
  •   adian · 2023-05-25 17:50:12 +08:00 · 1669 次点击
    这是一个创建于 547 天前的主题,其中的信息可能已经有所发展或是发生改变。

    将“引用类型”带入到类型推导系统中有什么好处呀?

    6 条回复    2023-05-26 22:58:13 +08:00
    C47CH
        1
    C47CH  
       2023-05-25 19:04:04 +08:00   ❤️ 1
    引用这个语法已经和 C++深度绑定了。
    GeruzoniAnsasu
        2
    GeruzoniAnsasu  
       2023-05-25 19:33:27 +08:00   ❤️ 1
    https://stackoverflow.com/questions/14115744/significance-of-parentheses-in-decltypec

    不是语法设计成这样,而是自动推导机制自然产生的结果
    GeruzoniAnsasu
        3
    GeruzoniAnsasu  
       2023-05-25 19:37:56 +08:00   ❤️ 1
    > 将“引用类型”带入到类型推导系统中有什么好处

    确切的值类型与移动语义和 copy elision 密切相关,这是现代 c++ 做出的最大优化努力之一
    nightwitch
        4
    nightwitch  
       2023-05-25 20:08:44 +08:00 via Android   ❤️ 1
    不然完美转发该怎么实现呢
    junmoxiao
        5
    junmoxiao  
       2023-05-26 14:11:25 +08:00   ❤️ 1
    c++的语法不是孤立的,不能单独看某个语法。都是先引入一类语法技术,然后为了更协调一致或者解决冲突
    Caturra
        6
    Caturra  
       2023-05-26 22:58:13 +08:00   ❤️ 1
    设计动机我不太了解,但是一个 C++表达式既有类型(喜闻乐见的 type ),又有值类别( value category ),这两种不同的特性可以用 decltype(e)和 decltype((e))来区分
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2548 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:41 · PVG 09:41 · LAX 17:41 · JFK 20:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.