摘要: 0. 引言C++中的句法歧义主要由类似int (a)的代码引起,此类代码共有3种合法的结构解释: 第一种是声明符a两边具有冗余圆括号的对象声明,其等同于int a; 第二种是函数式转型,它是表达式的一种,其等同于(int) a; 第三种是函数类型标识符,其等同于int f(a b)。 既然一种代码可同时解释为声明、表达式和类型,根据排列组合,共可引发声明和表达式、声明和类型、表达式和类型之间的3类歧义,这3类歧义均无法通过句法消解。上述3类两两之间的歧义在C++中都存在对应的句法构造,所幸的是C++中不存在声明、表达式和类型都能同时存在的地方,否则将需要消解3个对象,而不是现在的2个。下面对3 阅读全文
posted @ 2008-02-10 23:31 Goncely 阅读(583) 评论(1) 推荐(0) 编辑