std::ifstream nur mit char!?
-
Moin,
mal ne frage...
std::string filename; std::ifstream(filename);Gibt einen Compile error (GCC 3.4)
std::string filename; std::ifstream(filename.c_str());das geht...
aber warum???
mit dem gleichen compiler bei einem anderen projekt es mit string gegangen.
das einzige was hier anders ist, ist das ich an einem ort
extern "C" { } benutze, aber das schliesse ich ja wieder!hat jemand sowas schon mal gesehen?
gg
-
Eigentlich sollte es nur mit const char* gehen. Das extern "C" hat damit nichts zu tun, es handelt sich, wenn es auch mit string geht, um eine spezifische Erweiterung der Implementation.
-
Laut meinen Kenntnissen haben die fstreams nur einen Ctor für 'const char*', aber nicht für string, alles andere wäre eine compilerspezifische Erweiterung zum ANSI-Standard.
(nur, was genau meinst du mit extern "C"?)
-
also ist filename.c_str() richtig...?
-
kurz gesagt: JA