std::wstring get_call_stack();\r
}\r
\r
+template<typename T>\r
+inline void replace_nonprintable(std::basic_string<T, std::char_traits<T>, std::allocator<T>>& str, T with)\r
+{\r
+ std::locale loc;\r
+ std::replace_if(str.begin(), str.end(), [&](T c)->bool {\r
+ return \r
+ (!std::isprint(c, loc) \r
+ && c != '\r' \r
+ && c != '\n')\r
+ || c > static_cast<T>(127);\r
+ }, with);\r
+}\r
+\r
+template<typename T>\r
+inline std::basic_string<T> replace_nonprintable_copy(std::basic_string<T, std::char_traits<T>, std::allocator<T>> str, T with)\r
+{\r
+ replace_nonprintable(str, with);\r
+ return str;\r
+}\r
+\r
void add_file_sink(const std::wstring& folder);\r
\r
enum severity_level\r