MCPcopy Create free account
hub / github.com/davisking/dlib / convert_mbstring_to_wstring

Function convert_mbstring_to_wstring

dlib/unicode/unicode.cpp:97–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95// ----------------------------------------------------------------------------------------
96
97 const std::wstring convert_mbstring_to_wstring(const std::string &src)
98 {
99 // Compute dst length
100 std::mbstate_t st{};
101 const char* p = src.c_str();
102 size_t n = std::mbsrtowcs(nullptr, &p, 0, &st);
103 if (n == static_cast<size_t>(-1)) throw std::runtime_error("Invalid multibyte sequence / wrong locale");
104
105 // Convert
106 std::wstring out(n, L'\0');
107 st = std::mbstate_t{};
108 n = std::mbsrtowcs(&out[0], &p, out.size(), &st);
109 if (n == static_cast<size_t>(-1)) throw std::runtime_error("Conversion failed");
110 return out;
111 }
112
113// ----------------------------------------------------------------------------------------
114

Callers 9

error_box_helperFunction · 0.85
error_boxFunction · 0.85
set_titleMethod · 0.85
put_on_clipboardFunction · 0.85
put_on_clipboardFunction · 0.85
set_titleMethod · 0.85
box_winMethod · 0.85
blocking_box_winMethod · 0.85
set_nameMethod · 0.85

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected