gpt4 book ai didi

c++ - `>>>` 如何在 C++0x 中进行词法分析?

转载 作者:IT老高 更新时间:2023-10-28 12:58:18 25 4
gpt4 key购买 nike

>>> 的词法是 >>>。但是如果第一个 > 关闭模板参数列表会发生什么,结果应该等同于 >> > 还是 >>>

在下面的代码中确实很重要:

template<class T> struct X { };

void operator >>(const X<int>&, int) { }

int main() {
*new X<int>>> 1;
}

最佳答案

FDIS 的文本说

Similarly, the first non-nested >> is treated as two consecutive but distinct > tokens

它不能解除标记和 relex。所以这将是一个 >> >。请注意,C++ 实现的输入首先被转换为预处理标记,然后这些标记被转换为 C++ 标记。因此,首先您的输入是 C++ 标记 >>>,然后 C++ 解析器将这些标记更改为 >> >

Each preprocessing token is converted into a token. (2.7). The resulting tokens are syntactically and semantically analyzed and translated as a translation unit. [ Note: The process of analyzing and translating the tokens may occasionally result in one token being replaced by a sequence of other tokens (14.2). — end note ]

您不可能合并这两个尾随 >> 标记。

关于c++ - `>>>` 如何在 C++0x 中进行词法分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6235907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com