21static_assert(
sizeof(wchar_t) == 2,
"This is Windows, right?");
24std::wstring
widen(
const std::string&);
25#ifdef __cpp_lib_char8_t
26std::wstring
widen(
const std::u8string&);
34std::wstring
widen(
const void* src, std::size_t nb);
40template <
typename T,
typename Alloc = std::allocator<T>>
41std::wstring
widen(
const std::vector<T, Alloc>& src) {
42 return widen(src.data(), src.size() *
sizeof(T));
46std::string narrow(
const std::wstring&);
49std::string narrow(
const std::u16string&);
56std::string narrow(
const void* src, std::size_t nb);
62template <
typename T,
typename Alloc = std::allocator<T>>
63std::string
narrow(
const std::vector<T, Alloc>& src) {
64 return narrow(src.data(), src.size() *
sizeof(T));
std::wstring widen(const std::string &)
std::string narrow(const std::wstring &)