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

Function convert_wstring_to_mbstring

dlib/unicode/unicode.cpp:115–130  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

113// ----------------------------------------------------------------------------------------
114
115 const std::string convert_wstring_to_mbstring(const std::wstring &src)
116 {
117 std::mbstate_t st{};
118 const wchar_t* p = src.c_str();
119
120 // Compute length
121 size_t n = std::wcsrtombs(nullptr, &p, 0, &st);
122 if (n == static_cast<std::size_t>(-1)) throw std::runtime_error("Invalid wide sequence / locale mismatch");
123
124 // Convert
125 std::string out(n, '\0');
126 st = std::mbstate_t{};
127 n = std::wcsrtombs(&out[0], &p, out.size(), &st);
128 if (n == static_cast<std::size_t>(-1)) throw std::runtime_error("Conversion failed");
129 return out;
130 }
131
132// ----------------------------------------------------------------------------------------
133

Callers 9

get_from_clipboardFunction · 0.85
event_handlerMethod · 0.85
get_from_clipboardFunction · 0.85
nameMethod · 0.85
textMethod · 0.85
tab_nameMethod · 0.85
menu_nameMethod · 0.85
textMethod · 0.85
nameMethod · 0.85

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected