我一直在阅读所有知道>>
作为嵌套模板的结尾,>>
作为移位运算符...
现在我已经在我的MSVS2010中尝试过了,没有出现任何问题。
std::map<int, std::pair<int, int>> m;
此代码完全符合我的要求(对的映射),但我应该得到一些关于>>
的错误
编译器这些天更聪明了吗?
答案 0 :(得分:6)
MSVC ++ 2010支持C ++ 0x功能Right Angle Brackets
答案 1 :(得分:6)
要小心,因为之前很好的C ++ 03代码可能会破坏支持此功能的编译器。
MyArray< MyArray<int, 16 >> 2>, 5 > arrayInst;
这将是修复:
MyArray< MyArray<int, (16 >> 2)>, 5 > arrayInst;
答案 2 :(得分:4)
此代码完全符合我的要求(对的映射)但我应该得到一些关于&gt;&gt;
的错误
C ++ 0x修复此问题。因此,如果您没有收到MSVS2010的任何错误,那么毫无疑问,因为MSVS2010已经实现了一些C ++ 0x功能。
此外,即使使用C ++ 03,许多编译器也会处理此类情况,但标准(2003)并不要求。
答案 3 :(得分:3)
C++0x现在支持该语法而不会出错。编译器已经开始实现大多数这些功能,因此最新的Microsoft C ++编译器支持它并不奇怪。