diff options
| -rw-r--r-- | compat/warn.hpp | 67 | 
1 files changed, 0 insertions, 67 deletions
| diff --git a/compat/warn.hpp b/compat/warn.hpp deleted file mode 100644 index 7f3e21d0..00000000 --- a/compat/warn.hpp +++ /dev/null @@ -1,67 +0,0 @@ -#pragma once - -#include "macros.hpp" - -#include <sstream> -#include <iostream> -#include <locale> -#include <utility> - -#include <string> - -namespace warn_detail { -template<typename t> using basic_string_stream = std::basic_ostringstream<t, std::char_traits<t>, std::allocator<t>>; -using string_stream = basic_string_stream<wchar_t>; - -cc_forceinline void do_warn(string_stream&) {} - -template<typename x, typename... xs> -cc_forceinline void do_warn(string_stream& acc, const x& datum, const xs&... rest) -{ -    acc << datum; -    if (sizeof...(rest) > 0u) -        acc << L' '; -    do_warn(acc, rest...); -} - -template<typename... xs> -cc_noinline void warn_(const char* file, int line, const char* level, const xs&... seq) -{ -    using namespace warn_detail; -    string_stream stream; - -    do_warn(stream, seq...); - -    std::wcerr << L'[' << level << L' ' -               << file << L':' << line -               << L"] " -               << std::boolalpha -               << stream.str() -               << L'\n'; -    std::wcerr.flush(); -} - -} // ns warn_detail - -// todo add runtime loglevel - -#define otr_impl_warn_base(level, ...) \ -    (warn_detail::warn_(__FILE__, __LINE__, (level), __VA_ARGS__)) - -#define dbg_warn(...) \ -    otr_impl_warn_base("WARN", __VA_ARGS__) - -#define dbg_log(...) \ -    otr_impl_warn_base("INFO", __VA_ARGS__) - -#define dbg_crit(...) \ -    otr_impl_warn_base("CRIT", __VA_ARGS__) - -#include <cstdlib> - -#define dbg_fatal(...)                              \ -    do                                              \ -    {                                               \ -        otr_impl_warn_base("FATAL", __VA_ARGS__);   \ -        std::abort();                               \ -    } while (0) | 
