c++ - C++中聚集在一起的运算符如何分开

标签 c++

在 C++ 中,

is 
(a+++b)
processed as 
((a++) + b) 
or 
(a + (++b))

标准中在哪里对此进行了澄清?


这个问题的第一部分有很多答案,但是具体问题“标准中的何处对此进行了澄清”在其他地方没有得到非常明确的答案。

对于那些感兴趣的人,它位于 2003 C++ 标准 (ISO/IEC 14882) 的 2.4.3

“如果输入流已被解析为预处理标记直至给定字符,则下一个预处理 token 是可以构成预处理 token 的最长字符序列,即使这会 导致进一步的词法分析失败。”

最佳答案

它是 a++ +b,因为分词器是贪婪的,并且会尽可能尝试匹配 ++

关于c++ - C++中聚集在一起的运算符如何分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28936159/

相关文章:

c++ - 具有抽象成员的对象(无指针)

c++ - 消除类模板中基类名称的歧义

c++ - 尝试在声明中仅使用类名构造临时对象

c++ - 使用 boost spirit x3 解析为递归变体的问题

C++ 缺少输入(需要打印出 test1 的值)

c++如何使用另一个ctor的ctor?

c++ - dynamic_cast 的性能?

c++ - 查找点是否在几何内部

c++ - 检查选定的组合框项目 - WinApi C++

c++ - 我需要 __declspec(dllexport) 来自 DLL 的模板变量