typename 在stl中使用,防止編譯器類型識別模糊

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();

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章