Apple C ++ LLVM编译器4.x& UNICODE:需要时? UNICODE是默认的编译器字符集吗?使您的代码编译ANSI和UNICODE版本

时间:2013-05-17 11:48:01

标签: c++ macos gcc unicode llvm

我有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差异)?

1 个答案:

答案 0 :(得分:2)

有争议的是你甚至应该关心支持多种类型的字符串(这取决于应用程序),但也许以下情况应该有效:

#if defined(_WIN32) && defined(UNICODE)
    typedef std::wstring string;
#else
    typedef std::string string;
#endif

另外,请阅读以下帖子,了解不同类型的字符串及其用例的所有内容:std::wstring VS std::string