diff options
Diffstat (limited to 'platform/default/codecvt/codecvt')
-rw-r--r-- | platform/default/codecvt/codecvt | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/platform/default/codecvt/codecvt b/platform/default/codecvt/codecvt new file mode 100644 index 0000000000..8d21e82348 --- /dev/null +++ b/platform/default/codecvt/codecvt @@ -0,0 +1,30 @@ +#pragma once + +// This is a minimal polyfill that'll only work exactly for how we use codecvt + +#include <string> +#include <boost/locale/encoding_utf.hpp> + +namespace std { + +template <typename Codecvt, typename Elem = wchar_t> +class wstring_convert { +public: + static_assert(std::is_same<Elem, typename Codecvt::Elem>::value, "type mismatch"); + + inline std::basic_string<Elem> from_bytes(const string& str) { + return boost::locale::conv::utf_to_utf<Elem>(str); + } + + inline string to_bytes(const std::basic_string<Elem>& str) { + return boost::locale::conv::utf_to_utf<char>(str); + } +}; + +template <typename E> +class codecvt_utf8_utf16 { +public: + using Elem = E; +}; + +} // namespace std |