gpt4 book ai didi

c++ - 对于嵌套模板,什么时候 `>>` 成为标准 C++(而不是 `>>` )?

转载 作者:IT老高 更新时间:2023-10-28 12:54:08 27 4
gpt4 key购买 nike

我似乎记得,在过去的时候,在处理嵌套模板参数时,被警告不要将两个 > 字符彼此相邻(没有空格)。我什至依稀记得声明了任何 vector 的 vector 并遇到了这个编译错误。

但现在我发现编译可怕的>>绝对没有错...

因此我的问题是:

这种约定在什么时候成为一种可接受的做法?

它是标准 C++ 的一部分吗?

它是否一直是标准的一部分,而我在大学使用的编译器(以及我拥有的教授)还不支持它?

也许这些问题有点历史意义,但对我来说,适当的历史背景似乎使实际内存变得微不足道。

最佳答案

用嵌套 >> 关闭的模板是 officially supported由即将到来的标准 C++0x(现在的 C++11)。以前,您需要空间,或为您付出更多努力的编译器(并且做了标准未指明的事情)。

问题源于 C 中的 >> 是右移运算符,它是单个词法标记,与两个单独的 > 标记冲突这在经典构造的 C++ 编译器的解析阶段是需要的(并且仅在模板的情况下,而不是在它实际上是右移时)。换句话说,如果允许关闭嵌套模板,>> 在词法上是模棱两可的,但这可以(并且正在)通过解析过程中的额外复杂性来解决(这在现代 C++ 中确实不是什么新鲜事) )。

关于c++ - 对于嵌套模板,什么时候 `>>` 成为标准 C++(而不是 `>>` )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7087033/

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