C++ Standard-Library mit und ohne Unicode



  • Ich bin gerade an einer etwas größeren C++ Anwendung, hab gerade den Konstruktur einer Klasse geschrieben, die eine Referenz auf std::string übernimmt und weiß, gleich wird das zu Problemen führen, weil ich mit Unicode kompiliere (Visual Studio 2005). Gibt es Headerdateien für die Standard-Lib, die wie bei der WinAPI die die Klassen als "normale" oder Unicode-Version definieren?

    D.h.
    #define std::string std::string
    ...wenn ich ohne Unicode kompiliere, und
    #define std::string std::wstring
    wenn ich mit unicode kompiliere.

    Bietet Visual Studio so etwas an? Sonst werde ich wohl standardmäßig auf Unicode setzen und verwende auch wieder das einfacher zu schreibende L, anstatt T(). 😉



  • Wie wärs damit:

    #ifdef _UNICODE
    typedef tstring std::string;
    #else
    typedef tstring std::wstring;
    #endif
    


  • Das wäre schon eine Möglichkeit!



  • besser

    typedef std::basic_string<TCHAR> tstring;
    

Log in to reply