在 C++11 中,现在这是有效的语法:
vector<vector<float>> MyMatrix;
而以前,它必须这样写(注意空格):
vector<vector<float> > MyMatrix;
我的问题是该标准用于允许第一个版本的修复是什么?
是否可以像制作一样简单>
一个令牌而不是>>
?如果不是这样,那么什么不适用于这种方法呢?
我认为这样的形式myTemplate< x>>3 >
不是问题,因为你可以通过这样做来消除它们的歧义myTemplate<(x>>3)>
.
通过在解析模板参数时向解析规则添加特殊情况来修复此问题。
C++11 14.2/3:解析 a 时模板参数列表,第一个非嵌套>
被视为结束分隔符而不是大于运算符。同样,第一个非嵌套>>
被视为两个连续但不同的>
令牌,其中第一个被视为结束模板参数列表并完成模板 ID.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)