在C ++中,
is
(a+++b)
processed as
((a++) + b)
or
(a + (++b))
该标准在哪里澄清?
这个问题的第一部分有很多答案,但是在标准中“在哪里澄清”这个特定问题在其他地方并没有很清楚地回答。
对于那些感兴趣的人,它在2003 C ++标准(ISO / IEC 14882)中为2.4.3。
“如果输入流已被解析为给定字符之前的预处理令牌,则下一个预处理令牌是可以构成预处理令牌的最长字符序列,即使这将导致进一步的词法分析失败。”
之所以是a++ +b
,是因为令牌生成器过于贪婪,并且会++
在可能的情况下尝试进行匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句