本文介绍了错误:预期的嵌套名称说明符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我尝试编译一个2岁的项目(用g ++成功编译 3.3,如果我没记错的话)。 但现在用g ++ -gcc来解决问题4.2.3: #include< list> #include< ; hash_map> 模板< class> class ListPtr; 模板< class T> class ListPtrIterator { public: ListPtrIterator(ListPtr< T> * _user): M_user (_user), M_cur(M_user-> begin()){} bool cur(T *& ;); bool 重置(无效){ M_cur = M_user-> begin(); 返回M_cur!= M_user-> end(); } private: ListPtr< T> * M_user; typename list< T *> :: iterator M_cur; ^^^^ 错误:''list'之前的预期嵌套名称说明符' }; 请你知道这是什么问题吗? 在typename中有什么变化语法? 谢谢, Fabrice 解决方案 Fab写道: 应该是std :: list 旧的gcc版本接受全局命名空间中的标准容器。 /> - Ian Collins。 你也不应该,如果这是一个标题... - Ian Collins。 Hi,I try to compile a 2 years old project (successfully compiled with g++3.3, if I correctly remember ).But get problems now with g++ -gcc 4.2.3 :#include <list>#include <hash_map>template<class>class ListPtr;template<class T>class ListPtrIterator {public:ListPtrIterator( ListPtr< T >* _user ):M_user( _user ),M_cur( M_user->begin() ) {}boolcur( T*& );boolreset( void ) {M_cur =M_user->begin();return M_cur!=M_user->end();}private:ListPtr< T >* M_user;typename list< T* >::iterator M_cur;^^^^ERROR: expected nested-name-specifier before ''list''};Please do you know what''s the problem ?Has something changed in "typename" syntax ?Thanks,Fabrice 解决方案Should be std::listOld gcc versions accepted standard containers in the global namespace.--Ian Collins.Nor should you, if this is from a header...--Ian Collins. 这篇关于错误:预期的嵌套名称说明符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 05-27 20:01