最近写的一段C++代码在visual studio 2008下编译通过,但是用gcc报出一大堆错误,最显眼的提示就是dependent scope,经过一番百度发现是我学艺不精,这是C++基础问题,“在你涉及到一个在 template(模板)中的 nested dependent type name(嵌套依赖类型名)的任何时候,你必须把单词 typename 放在紧挨着它的前面”(有两个例外)。但是在VS2008里对于这个不是非常敏感,例如
template <class T>
class A{
vector<T>::iterator ite;
};
VS2008会默认vector<T>::iterator为类型名,顺利通过编译,但是gcc会出错。
用VS2008学C++的同学还是换成其他编译器吧,vs的确很强大很好用,但是在有些地方会误导初学者
上个链接给大家
http://www.cnblogs.com/abiao/articles/1259823.html (C++关键字typename)
本文探讨了使用GCC与Visual Studio 2008编译同一段C++代码时出现的不同错误提示,特别是关于嵌套依赖类型名的处理差异。作者建议初学者在学习C++时考虑更换编译器。

939

被折叠的 条评论
为什么被折叠?



