在[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?
乍一看,我会说两者都是表达。
答案 0 :(得分:8)
int(unsigned(a))
的解析方式与int(unsigned a)
相同,后者是函数类型