错误:预期的嵌套名称说明符 [英] error: expected nested-name-specifier
问题描述
我尝试编译一个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
我没有看到
使用命名空间std;
in你的代码?
问候,Ron AF Greve
http://www.InformationSuperHighway.eu
" Fab" < fa ************* @ free.frwrote in message
news:d2 ***************** ***************** @ n20g2000 hsh.googlegroups.com ...
我尝试编译一个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 - >结束();
}
私人:
ListPtr< ; T> * M_user;
typename list< T *> :: iterator M_cur;
^^^^
错误:''list'之前的预期嵌套名称说明符'
};
请你知道这是什么问题吗?
在typename中有什么变化语法?
谢谢,
Fabrice
< blockquote> Fab写道:
我尝试编译一个2岁的项目(用g ++编译成功
3.3,如果我没记错的话。)
但现在用g ++ -gcc 4.2.3:
typename list< T *> :: iterator M_cur;
^^^^
错误:''list'之前的预期嵌套名称说明符'
};
应该是std :: list
旧的gcc版本接受全局命名空间中的标准容器。 />
-
Ian Collins。
Ron AF Greve写道:
>
[请不要发帖]
我什么也看不见a
使用命名空间std;
代码?
你也不应该,如果这是一个标题...
-
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() ) {}
bool
cur( T*& );
bool
reset( 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
Hi,
I don''t see a
using namespace std;
in your code?
Regards, Ron AF Greve
http://www.InformationSuperHighway.eu
"Fab" <fa*************@free.frwrote in message
news:d2**********************************@n20g2000 hsh.googlegroups.com...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() ) {}
bool
cur( T*& );
bool
reset( 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
Fab wrote: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 :
typename list< T* >::iterator M_cur;
^^^^
ERROR: expected nested-name-specifier before ''list''
};
Should be std::list
Old gcc versions accepted standard containers in the global namespace.
--
Ian Collins.
Ron AF Greve wrote:
[please don''t top post]
Hi,
I don''t see a
using namespace std;
in your code?
Nor should you, if this is from a header...
--
Ian Collins.
这篇关于错误:预期的嵌套名称说明符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!