typedef wcout cout; --> Fehler C2146
-
Ich hab nen eigenartiges Problem. Folgende main.cpp wird nicht kompiliert:
#include <iostream> #ifdef _UNICODE typedef std::wcout tcout; // Fehler (zumindest in der Unicode Version). #else typedef std::cout tcout; #endif int main() { return 0; }Fehlerausgabe (Dateipfade entfernt):
1>main.cpp(4) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'tcout'
1>main.cpp(4) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>main.cpp(4) : error C2371: 'std::wcout': Neudefinition; unterschiedliche Basistypen
1> .....\iostream(58): Siehe Deklaration von 'std::wcout'
1>main.cpp(4) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.Das ist (neben comments) die gesamte main.cpp Datei. Im Projekt befinden sich zwar noch andere Dateien, aber die werden normal kompiliert und haben mit der main.cpp in der Form ja eh nichts zu tun.
In einer anderen Datei hatte ich ähnliche Konstrukte (wstring/string, wofstream/ofstream,...), und da gings... (aber in der main.cpp wird wirklich nur iostream inkludiert!).
-
wout und cout sind Objekte, keine Typen. Was du da versuchst ginge vielleicht so:
#ifdef _UNICODE std::wostream& tcout = std::wcout; #else std::ostream& tcout = std::cout; #endif
-
uh... xD
Danke, das war mir jetzt irgendwie nicht bewusst