diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-10-02 16:40:18 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-10-02 16:40:18 -0700 |
| commit | ca692e52cee55da2f9d65d66e5f3997f3a335743 (patch) | |
| tree | 0ef47c1431c349d65b7abc7831aba80354147e66 /toolsrc/src | |
| parent | f58b91e8b494ef3a7e3c55bc70b0293cb54139db (diff) | |
| download | vcpkg-ca692e52cee55da2f9d65d66e5f3997f3a335743.tar.gz vcpkg-ca692e52cee55da2f9d65d66e5f3997f3a335743.zip | |
Replace deprecated std::codecvt/std::wstring_convert. Fixes building with v141
Diffstat (limited to 'toolsrc/src')
| -rw-r--r-- | toolsrc/src/vcpkg_Strings.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/toolsrc/src/vcpkg_Strings.cpp b/toolsrc/src/vcpkg_Strings.cpp index 1bd96fc12..964ed73d0 100644 --- a/toolsrc/src/vcpkg_Strings.cpp +++ b/toolsrc/src/vcpkg_Strings.cpp @@ -73,14 +73,20 @@ namespace vcpkg::Strings { std::wstring to_utf16(const CStringView s) { - std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t> conversion; - return conversion.from_bytes(s); + const size_t size = MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, nullptr, 0); + std::wstring output; + output.resize(size - 1); + MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, output.data(), size - 1); + return output; } std::string to_utf8(const CWStringView w) { - std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t> conversion; - return conversion.to_bytes(w); + const size_t size = WideCharToMultiByte(CP_UTF8, 0, w.c_str(), -1, nullptr, 0, nullptr, nullptr); + std::string output; + output.resize(size - 1); + WideCharToMultiByte(CP_UTF8, 0, w.c_str(), -1, output.data(), size - 1, nullptr, nullptr); + return output; } std::string::const_iterator case_insensitive_ascii_find(const std::string& s, const std::string& pattern) |
