为什么这个shared_ptr向量的定义可以通过编译器检查?
问题描述:
我已经看到了如下定义整个遗留代码:为什么这个shared_ptr向量的定义可以通过编译器检查?
std::vector<boost::shared_ptr<ClassNameAAA>> vecClass;
我能够用VS2008编译它W/O问题。
问题>我的理解是,以下行应该使用:
std::vector<boost::shared_ptr<ClassNameAAA> > vecClass;
^Add a space here
我是正确的呢?如果有的话,为什么VS2008允许这样做?
谢谢
答
MSVC++ 2008能够解析这个,因为语言扩展。
许多编译器对最终成为该语言一部分的功能进行了扩展。现在需要在新的C++ 11标准中解析没有空间的嵌套模板声明。