我在遗留代码中看到了以下定义:
std::vector<boost::shared_ptr<ClassNameAAA>> vecClass;
我可以用VS2008编译它没有问题。
问题&GT;我的理解是应该使用以下行:
std::vector<boost::shared_ptr<ClassNameAAA> > vecClass;
^ Add a space here
我对此是否正确?如果有,为什么VS2008允许这个?
谢谢
答案 0 :(得分:4)
答案 1 :(得分:1)
由于语言扩展,MSVC ++ 2008能够解析此问题。
许多编译器都具有最终成为该语言一部分的功能的扩展。现在,在新的C ++ 11标准中,需要能够解析没有空格的嵌套模板声明。