对于同时作为一元和二元的运算符,为什么在像这样的表达式中选择二元运算符a@b?
a@b
经过大量的思考和搜索,我仍然无法回答为什么像这样的东西a+b被解析为二进制表达式而不是a(+b),这显然是胡言乱语。
a+b
a(+b)
我不认为上下文无关的语法能够区分这两者,并且试图在这个版本的标准中找到答案并没有给我任何答案。
解析器是否特别选择二进制版本,因为一元版本会是胡言乱语?如果是这样,标准中是否有部分概述了这一点?
c++ parsing expression operators language-lawyer
c++ ×1
expression ×1
language-lawyer ×1
operators ×1
parsing ×1