diff options
| author | Egor Tensin <egor@tensin.name> | 2026-05-17 14:22:44 +0200 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2026-05-17 14:27:15 +0200 |
| commit | c6d9ddc58f3f1127c39b1aeaece83362323686b3 (patch) | |
| tree | c95bcae79bac5f2b355814a29ba72d418d1b1819 | |
| parent | fix whitespace (diff) | |
| download | winapi-utf8-c6d9ddc58f3f1127c39b1aeaece83362323686b3.tar.gz winapi-utf8-c6d9ddc58f3f1127c39b1aeaece83362323686b3.zip | |
add overloads for u8string
| -rw-r--r-- | include/winapi/utf8.hpp | 3 | ||||
| -rw-r--r-- | src/convert.cpp | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/winapi/utf8.hpp b/include/winapi/utf8.hpp index c6bb03a..2e87f75 100644 --- a/include/winapi/utf8.hpp +++ b/include/winapi/utf8.hpp @@ -22,6 +22,9 @@ static_assert(sizeof(wchar_t) == 2, "This is Windows, right?"); /** Convert UTF-8 string to UTF-16. */ std::wstring widen(const std::string&); +#ifdef __cpp_lib_char8_t +std::wstring widen(const std::u8string&); +#endif /** * Convert UTF-8 string to UTF-16. diff --git a/src/convert.cpp b/src/convert.cpp index 4ccc3a0..c0a8e98 100644 --- a/src/convert.cpp +++ b/src/convert.cpp @@ -100,6 +100,12 @@ std::wstring widen(const std::string& src) { return widen(src.c_str(), src.size()); } +#ifdef __cpp_lib_char8_t +std::wstring widen(const std::u8string& src) { + return widen(src.c_str(), src.size()); +} +#endif + std::wstring widen(const void* src, std::size_t in_nb) { const DWORD flags = MB_ERR_INVALID_CHARS; |
