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 charlieIst 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/ 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).