Jim*_*mmy 26 c++ templates
我似乎记得,在过去的时候,>在处理嵌套模板参数时,要警告不要将两个字符紧挨着(没有空格).我甚至模糊地记得声明向量的向量,并遇到这个编译错误.
>
但现在我发现编译可怕的东西绝对没有错>>...
>>
我的问题是这样的:
该公约在什么时候成为可接受的做法?
它是标准C++的一部分吗?
它是否始终是标准的一部分,我在大学里使用的编译器(以及我所拥有的教授)只是不支持它?
也许这些问题有点历史,但对我而言,正确的历史背景似乎使得实际的记忆变得微不足道.
Joh*_*nck 24
关闭模板嵌套>>的正式支持在即将到来的标准的C++ 0x(现在的C++ 11).以前你需要空间,或者需要为你付出额外努力的编译器(并且做了标准没有指出的事情).
问题源于这样一个事实:>>在C中是右移运算符,它是一个单一的词法标记,它与>在经典构造的C++编译器中解析阶段所需的两个独立标记冲突(并且仅在模板的情况,而不是实际上是右移的情况).换句话说,>>如果允许关闭嵌套模板,则在词法上是不明确的,但在解析过程中可以(并且正在)通过额外的复杂性来解决(在现代C++中它实际上并不新鲜).
归档时间:
14 年 前
查看次数:
4114 次
最近记录:
13 年,10 月 前