c++ - Convert std::basic_string<wchar_t> and std::basic_string<uint16_t> -
in macos x 10.10 clang:
typedef basic_string<char, char_traits<char>, allocator<char> > string; typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring; i build string like: std::wstringstream ss;
ss << "["; ss << "{"; ss << "x1:" << 111 << ","; ss << "z1:" << 111; ss << "},"; ss << "{"; ss << "x2:" << 222 << ","; ss << "z2:" << 222; ss << "}"; ss << "]"; std::wstring str = ss.str(); and need pass str argument function expects std::basic_string<uint16_t> , returns string of same type.
how conversion between std::basic_string<wchar_t> , std::basic_string<uint16_t> make use of external library function?
c++11 allowed.
maybe use of wstring_convert or workaround?
first of need sure, source std::basic_string<wchar_t> has same encoding input std::basic_string<uint16_t>. if encoding different should specific character encoding conversion algorithm. otherwise can this.
std::basic_string<uint16_t> result; std::copy(source.begin(), source.end(), std::back_inserter(result));
Comments
Post a Comment