代码之家  ›  专栏  ›  技术社区  ›  Alexander

在下面的示例中,为什么int(a)是表达式,int(unsigned(a))是类型id?

  •  7
  • Alexander  · 技术社区  · 7 年前

    在里面 [dcl.ambig.res]/2 我们发现:

    void foo(signed char a) {
        sizeof(int(a)); // expression
        sizeof(int(unsigned(a))); // type-id (ill-formed)
    }
    

    为什么是 int(a) 表达式和 int(unsigned(a)) 类型id?

    乍一看,我想说这两者都是表达。

    1 回复  |  直到 7 年前
        1
  •  8
  •   Justin    7 年前

    int(unsigned(a)) 解析方式与 int(unsigned a) ,这是一种函数类型