如何获取std :: wstring的字节大小?

Hoo*_*och 11 c++ string size winapi wstring

std::wstring用作我的Unicode样式字符串.现在我想得到一个字节大小wstring.如果我使用size()方法wstring,我只得到我的字符总数wstring.但是字节应该是size()*2.是否有正式的方法来获得这个字节大小?我不想在我的程序中使用size()*2 .....

我想RegSetValueExW用作最后一个参数.

Die*_*Epp 17

使用str.size() * sizeof(wchar_t)或等同.

事实上,我想不出除Windows以外的任何其他平台有2字节wchar_t,4字节更常见.

  • 如果使用RegSetValueExW设置REG_SZ,则还需要为空终止符添加一个字符:`(str.size()+ 1)* sizeof(wchar_t)` (2认同)

Gha*_*uni 8

为什么不 :

( str.size() * sizeof(wchar_t) ) ;
Run Code Online (Sandbox Code Playgroud)

要么 :

( str.size() * sizeof(std::wstring::traits_type::char_type) ) ;
Run Code Online (Sandbox Code Playgroud)