Nein, dürfte nicht gehen.
Die des Konstruktors und der Methode
open() ist durch den Standard fest vorgegeben:
|
C-/C++-Quelltext
|
1
2
|
explicit basic_ofstream(const char* s, ios_base::openmode mode = ios_base::out);
basic_filebuf<charT,traits>* open (const char* s, ios_base::openmode mode);
|
Der erste Parameter ist immer const char*, egal was für ein char-Type angegeben wird.
Der Datentyp wchar_t wurde übrigens aufgrund der Portabilität weggelassen, da zu der Zeit des Standardentwurfs nicht zwangsläufig Unicode von den Zielsystemen unterstützt wurde. Es wurde aber bereits der Vorschlag eingereicht das eine Überladene Version von open() auch const wchar_t* unterstützen soll.
Bei Implementationen die von manchen Microsoft IDEs mitgeliefert werden scheint diese Idee schon ungesetzt worden zu sein. Dürfte aber nach aktuellem Standard
nicht konform sein!
Allerdings geht das ganze über einen Workaround, nämlich unter der Verwendung von _wopen (oder ein Equivalent, _wopen ist kein Standard):
|
C-/C++-Quelltext
|
1
2
|
int handle = _wopen( L"test.txt", _O_WRONLY | _O_CREAT, _S_IREAD | _S_IWRIT );
std::wofstream stream( handle );
|