c++ - Windows 上的 std::basic_string<TCHAR> 会优于 std::wstring 吗?

标签 c++ windows unicode stl

据我了解,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/

相关文章:

C++ 指针 - 常见做法

c++ - 调车场:缺少运算符(operator)参数

c - 如何从 Ruby 调用 Windows DLL 函数?

python - 检测计算机何时解锁 Windows

python - Python CSV 编写器正在将字母添加到每个元素的开头并出现编码问题

Css unicode 显示空白矩形

java - Mac OS X 上 UniChar 的正确 JNA 映射是什么?

c++ - cin.clear() 将 EOF 留在流中?

c++模板不带参数使用

windows - Socket.Bind 和 IP 源路由,具有多个本地网络接口(interface)