模板类中定义 std::list::iterator iter在Linux下不识别的解决方法。

template<class T>
void CCommList<T>::Clear()
{
        std::list<T*>::iterator iter = infolist.begin();
        for (; info_iter!=infolist.end(); info_iter++)
        {
                delete &*info_iter;
        }
        infolist.clear();
}

修改如下即可

typename std::list<T*>::iterator iter = infolist.begin();

编译器不知道list<T*>::iterator是代表一个类型
还是代表list<T*>类中的一个成员,叫做iterator。

你可能感兴趣的:(linux,list,delete,iterator,编译器)