我有Microsoft C ++编译器经验。 在那里你可以非常简单地调整你的使用/不使用UNICODE编译路径。 以下结构是合法且完全可能的:
#ifdef UNICODE
typedef std::wstring string;
#else
typedef std::string string;
#endif
但是我如何使用Apple LLVM编译器处理相同的情况?
P.S。 GCC提示也将受到赞赏。
更新 在Windows编程中,最好使用UNICODE字符串(特别是,如果你大量使用基于UNICODE的WinAPI)。是否有任何理由在LLVM或GCC for OSX和iOS上使用wstring而不是字符串(除了charset差异)?
答案 0 :(得分:2)
有争议的是你甚至应该关心支持多种类型的字符串(这取决于应用程序),但也许以下情况应该有效:
#if defined(_WIN32) && defined(UNICODE)
typedef std::wstring string;
#else
typedef std::string string;
#endif
另外,请阅读以下帖子,了解不同类型的字符串及其用例的所有内容:std::wstring VS std::string