Hinweise zum Einsatz des GNU C++ Compilers

Diese Version des Compilers verlangt für die Standardobjekte cout, cerr und cin die Einbindung von <iostream> auch dann, wenn <fstream> bereits mit #include eingebunden wurde. Dies mutet etwas merkwürdig an, weil fstream  von iostream erbt und daher Letzteres kennen müsste. Grund ist vielleicht die Forderung, dass System-Header unabhängig voneinander sein sollen.

Statusbits werden beim Aufruf von open() nicht gelöscht!. Wenn ifstream-Objekte zweimal oder öfter benutzt werden, zum Beispiel, indem nach einem close() ein open() mit einem anderen Dateinamen erfolgt, ist daher clear() aufzurufen, damit das Objekt genutzt werden kann. Die Statusbits nicht zu löschen, führt zu inkonsistenten Objektzuständen, auch entspricht das Verhalten nicht dem C++-Standard, der verlangt, dass ifstream::open() sich wie das fopen() der Sprache C verhält.

Die erwähnten Besonderheiten sind in den für diesen Compiler angepassten und auf der Vorseite zum Download angebotenene Beispielen berücksichtigt.

zurück
 

Impressum