我想像这样将字符数组转换为宽字符串
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
std::wstring ws=converter.from_bytes({99,108,105,235,110,116}).
但这是行不通的。
`235` is an invalid narrowing conversion from int to char:constant character doesn't fit in destination type.
from_bytes
对于您的代码,唯一可以认为可行的重载是采用的版本const byte_string&
。您没有使用自定义分配器,所以byte_string
是std::basic_string<char, std::char_traits<char>, std::allocator<char>>
,又名std::string
。
std::string
有一个initalizer_list<char>
构造函数;但是,char
在您的平台上是带符号的,并且不能表示value 235
,从而将隐式转换从转换235
为char
缩小转换,这是在支撑式初始值设定项列表的顶层不允许的。
使用char(235)
代替将其显式转换为char
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句