gcc 3.4.3 stringstream
-
Hallo,
ich habe ein Problem mit dem folgenden kleinen Testprogramm:#include <sstream> #include <iostream> #include <string> #include <cassert> using namespace std; int main() { string i = "alfred berta charlie"; stringstream str(i); int wc = 0; for (string word; str >> word; ++wc) cout << word << endl; assert(wc == 3); return 0; }
VC 6.0, 7.1, gcc 3.2 und gcc 2.95 führen dieses Programm problemlos aus und liefern als Ausgabe korrekterweise:
alfred berta charlie
Übersetze ich das Ganze hingegen mit dem gcc 3.4.3 feuert die Assertion und die Ausgabe ist fälschlicherweise:
alfred berta charlie
Ist das ein Bug im Compiler oder ist nur meine Installation kaputt?
-
falls es dir hilft, mit gcc 3.4.2 (mingw) funktioniert es und die ausgabe ist auch richtig.
-
Mit dem g++ 3.3.4 geht es auch.
Unter welchem OS läuft das Ding?
Wenn es ein Bug ist:http://gcc.gnu.org/bugzilla/
EDIT: Es ist einer: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10074 Kann aber sein, dass er sich durch eine neuere Standard-C-Bibliothek beheben lässt. Probier das mal.
-
Steven schrieb:
Kann aber sein, dass er sich durch eine neuere Standard-C-Bibliothek beheben lässt. Probier das mal.
Danke. Das war der entscheidene Hinweis. Mit einer 2.2.5er C-Lib funktioniert es (neuere Versionen der C-Lib vertragen sich leider nicht mit dem bereits etwas älteren Suse-Linux das hier eingesetzt wird).