Hallo Leute
Anscheinend gibt es einen neuen C++ Standard. Redhat 9 hat einiges mit so genannten „Backward Header“ gelöst (z.B. das Namespace Problem in iostream.h, std::cout, std::cin etc.)
Doch es gibt noch andere Probleme, so z.B. das „old Style C++ I/O System“ und die neuen ANSI/ISO Standard C++ I/O Klassen. Diese Probleme treten allerdings nur mit einem GNU Compiler > V 3.x.x auf. Aber irgendwann muss man ja umsteigen.
Ein Bespiel:
// Diese Funktion Prüft, ob eine Datei schon existiert
int Exists(char *file_name)
{
fstream temp_ptr;
temp_ptr.open( file_name, ios::in | ios::nocreate, filebuf::openprot );
if( !temp_ptr )
{
return false;
} else
{
temp_ptr.close();
return true;
}
}
Im „old Style C++ I/O System“ gab es folgende Werte um mit Dateien zu arbeiten:
ios::app
ios::ate
ios::binary
ios::in
ios::nocreate
ios::noreplace
ios::out
ios::trunc
In den neuen ANSI/ISO Standard C++ I/O Klassen existieren die beiden Werte „ ios::nocreate“ und „ios::noreplace“ nicht mehr.
Nun meine Fragen:
1. Wie kann die Funktion „ Exists“ auf den neuen ANSI/ISO Standard umgeschrieben werden?
2. „ filebuf::openprot” scheint für den neuen GNU Compiler ebenfalls ein Problem zu sein. Wozu dient das und wie kann es auf den neuen ANSI/ISO Standard umgeschrieben werden?
Dank und Gruss
d-oli