我正在對傳統代碼執行一些後臺維護。如何序列化模板類
它涉及用STL替換已棄用的庫並進行提升,同時保持界面與人類可能的類似。
ostream& operator<<(ostream& vos, const OurList<class T>& coll)
{
// OurList wraps an stl list with the same interface as the current library
// OurListIterator wraps an iterator class used to access OurList
OurListIterator<T, OurList<class T> > iter((OurList<class T>&)coll);
// this function gets the first item in the list and then each next one
while (iter())
{
// key returns the value pointed to by the iterator
vos << iter.key();
}
};
然而,當我編譯我得到一個錯誤的VOS < < iter.key()行:
二進制 '< <':沒有操作員發現這需要右手 型「T」的操作數(或沒有可接受的轉換)
我猜測編譯器抱怨,因爲它不知道提前T是否會serialisable?然而,這在當前的圖書館工作 - 我錯過了什麼?
嘗試刪除'class'。 – Jarod42