2014-02-22 78 views
0

的代碼:轉換C++ 11碼到C++ 98

while ((row = mysql_fetch_row(pRes))) { 
     TMPTable temp = {}; 
     if (row[0]) temp.con = strtoul(row[0], NULL, 10); 
     std::vector<MATable>.push_back(temp); 
} 

就行錯誤與TMPTable temp = {};

in C++98 'temp' must be initialized by constructor, not by '{...}'

的另一個問題是:

std::ostringstream query;

給出錯誤:

aggregate 'std::ostringstream query' has incomplete type and cannot be defined

我已經嘗試在谷歌的解決方案,但還沒有找到任何工作一個。總是有錯誤結束了。你們能否指出我正確的方向?

+0

第二個看起來像你沒有包含頭文件(這是一樣容易出錯的C++ 11)。 – chris

+0

第一個示例有語法錯誤。 – 0x499602D2

回答

6

您需要包括<sstream>才能獲得std::ostringstream的定義。爲了解決初始化,你可以簡單地使用

TMPtable tmp = TMPtable(); 
+0

Yaay!我頭痛,現在兩個錯誤都消失了,謝謝Dietmar! <可以在6分鐘內接受答案) – Lucas

+2

如果'TMPtable'有一個默認的構造函數,那麼你可以寫'TMPtable tmp;',並且它會被正確初始化。 –