template<class T>
void Clear( std::list<T*> ls)
{
std::list<T*>::iterator it = ls.begin(); // 这一行在linux编译不过,提示:expected ';' before 'it'
for (; it != ls.end(); ++it)
{
//...
}
ls.clear();
}
修改如下:
template<class T>
void Clear( std::list<T*> ls)
{
typename std::list<T*>::iterator it = ls.begin();
for (; it != ls.end(); ++it)
{
//...
}
ls.clear();
}

本文介绍了一种修正C++模板中迭代器声明的方法,解决了在Linux环境下编译时出现的错误。通过使用typename关键字正确指定类型,确保了代码能够正常编译。
2045

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



