#pragma once #include #include #include #include "./com/com_include.h" namespace dxvk::str { std::string fromws(const WCHAR *ws); void tows(const char* mbs, WCHAR* wcs, size_t wcsLen); template void tows(const char* mbs, WCHAR (&wcs)[N]) { return tows(mbs, wcs, N); } std::wstring tows(const char* mbs); inline void format1(std::stringstream&) { } template void format1(std::stringstream& str, const WCHAR *arg, const Tx&... args) { str << fromws(arg); format1(str, args...); } template void format1(std::stringstream& str, const T& arg, const Tx&... args) { str << arg; format1(str, args...); } template std::string format(const Args&... args) { std::stringstream stream; format1(stream, args...); return stream.str(); } }