天天看點

模闆類中定義list<T>::iterator iter在g++下不識别的解決辦法

  今天在練習hash table時候,準備采用vetor和list進行實作,當我定義一個模闆類的疊代器時候,出現錯誤。于是我在網上找找如何處理這個問題,最終解決了問題,記錄在此以後,便于以後檢視。我寫的測試程式如下:

模闆類中定義list<T>::iterator iter在g++下不識别的解決辦法
模闆類中定義list<T>::iterator iter在g++下不識别的解決辦法

編譯程式時候提示如下錯誤:在第16 行 error: need 'typename' before 'std::list<t>::iterator' because 'std::list<t>' is a dependent scope|

提示的意思是說在list<t>前面需要用typename限定一下,因為編譯器不知道list<t>::iterator是代表一個類型。于是下将16行代碼:

list<t>::iterator iter; 改為 typename std::list<t>::iterator iter;

繼續閱讀