据我了解,Windows #defines TCHAR 是基于构建的应用程序的正确字符类型 - 所以它是 wchar_t
在 UNICODE 构建和 char
否则。
因此我想知道是否std::basic_string<TCHAR>
会比 std::wstring
更可取, 因为第一个理论上会匹配应用程序的字符类型,而第二个总是很宽。
所以我的问题本质上是:会 std::basic_string<TCHAR>
优于std::wstring
在 Windows 上?而且,使用 std::basic_string<TCHAR>
会有什么注意事项(即意外行为或副作用)吗? ?或者,我应该只使用 std::wstring
在 Windows 上而忘记它?
最佳答案
我相信发布应用程序的非 unicode 版本(以支持 Win95,或节省一两 KB)的时代已经过去了:现在你支持的底层 Windows 系统将是基于 unicode(因此使用基于 char 的系统接口(interface)实际上会通过从库中插入一个填充层来使代码复杂化)并且你是否会节省任何空间是值得怀疑的。去 std::wstring
,年轻人!-)
关于c++ - Windows 上的 std::basic_string<TCHAR> 会优于 std::wstring 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/956504/