Hallo, danke für die Antwort, funktioniert so wie du gesagt hast. Jetzt hab ich nur noch ein Problem mit dem openmode nocreate. Den scheint es nicht mehr zu geben. Ist das so? Was kann ich sonst dafür verwenden? Gruss Wilfrid -----Ursprüngliche Nachricht----- Von: Stefan Sassenberg [mailto:stefan.sassenberg@gmx.de] Gesendet: Montag, 15. September 2003 12:20 An: suse-programming@suse.com Betreff: Re: Compiler Versionen Eberhard Wilfrid ZFF TE-PR wrote:
Hallo,
ich habe eine Frage zu unterschiedlichen Versionen des Gnu compilers.
Bisher haben wir Suse Linux 7.2 mit dem dazugehörigen gnu c++ compiler verwendet, das übersetzten der folgenden Zeile war hier kein problem
switch (rw) { case 'r' : file.open(filename,ios::in || ios::nocreate); //if (!file) exit(-1); erstmal entfernt break; case 'w' : file.open(filename,ios::out); //if (!file) exit(-1); break; default : exit(-1); break; }
Jetzt verwenden wir Suse Linux 8.2 und bekommen bei der gleichen Zeile die Fehlermeldung:
ios undeclared
Was hat sich da in diesem Zusammenhang am Compiler geändert?
Danke schon mal für eure Hilfe.
Gruss
Wilfrid
Hallo, obwohl ich nicht sicher bin, hat sich da evtl. etwas an den Header-Dateien geändert. Wie auch immer, der Compiler hat beim finden des Symbols "ios" immer im Namespace "std" geschaut und ist dort fündig geworden. Das passiert nun nicht mehr. Es gibt mehrere Lösungen für dieses Problem. Ich empfehle, bei jeder Verwendung von ios den Namespace explizit anzugeben, also "std::ios" zu verwenden. Das gleiche gilt für alle Symbole, bei denen der Compiler seit der Umstellung meckert, z. B. die Container vector, set, map und auch string. Grüße Stefan -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-programming-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-programming-help@suse.com