aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-10-02 16:40:18 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2017-10-02 16:40:18 -0700
commitca692e52cee55da2f9d65d66e5f3997f3a335743 (patch)
tree0ef47c1431c349d65b7abc7831aba80354147e66 /toolsrc/src
parentf58b91e8b494ef3a7e3c55bc70b0293cb54139db (diff)
downloadvcpkg-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.cpp14
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)