aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/winapi
diff options
context:
space:
mode:
Diffstat (limited to 'include/winapi')
-rw-r--r--include/winapi/utf8.hpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/include/winapi/utf8.hpp b/include/winapi/utf8.hpp
index c6fc77b..9469fd7 100644
--- a/include/winapi/utf8.hpp
+++ b/include/winapi/utf8.hpp
@@ -6,18 +6,26 @@
#pragma once
#include <cstddef>
+#include <memory>
#include <string>
#include <vector>
namespace winapi {
std::wstring widen(const std::string&);
-std::wstring widen(const std::vector<unsigned char>&);
std::wstring widen(const void*, std::size_t nb);
+template <typename T, typename Alloc = std::allocator<T>>
+std::wstring widen(const std::vector<T, Alloc>& src) {
+ return widen(src.data(), src.size() * sizeof(T));
+}
+
std::string narrow(const std::wstring&);
-std::string narrow(const wchar_t*, std::size_t nch);
-std::string narrow(const std::vector<unsigned char>&);
std::string narrow(const void*, std::size_t nb);
+template <typename T, typename Alloc = std::allocator<T>>
+std::string narrow(const std::vector<T, Alloc>& src) {
+ return narrow(src.data(), src.size() * sizeof(T));
+}
+
} // namespace winapi