34 #define NL std::endl;std::cout.clear();std::cerr.clear() 36 #define HF_LOG_LEVEL_NONE 0 37 #define HF_LOG_LEVEL_ERROR 1 38 #define HF_LOG_LEVEL_WARN 2 39 #define HF_LOG_LEVEL_INFO 3 40 #define HF_LOG_LEVEL_DEBUG 4 41 #define HF_LOG_LEVEL_TRACE 5 45 #define HF_LOG_LEVEL HF_LOG_LEVEL_INFO 48 #if HF_LOG_LEVEL >= HF_LOG_LEVEL_ERROR 49 #define ERROR std::cerr.clear();std::cerr << "[ERROR] " 51 #define ERROR std::cerr.setstate(std::ios_base::badbit);std::cerr 54 #if HF_LOG_LEVEL >= HF_LOG_LEVEL_WARN 55 #define WARN std::cerr.clear();std::cerr << "[WARN ] " 57 #define WARN std::cerr.setstate(std::ios_base::badbit);std::cerr 60 #if HF_LOG_LEVEL >= HF_LOG_LEVEL_INFO 61 #define INFO std::cout.clear();std::cout << "[INFO ] " 63 #define INFO std::cout.setstate(std::ios_base::badbit);std::cout 66 #if HF_LOG_LEVEL >= HF_LOG_LEVEL_DEBUG 67 #define DEBUG std::cout.clear();std::cout << "[DEBUG] " 69 #define DEBUG std::cout.setstate(std::ios_base::badbit);std::cout 72 #if HF_LOG_LEVEL >= HF_LOG_LEVEL_TRACE 73 #define TRACE std::cout.clear();std::cout << "[TRACE] " 75 #define TRACE std::cout.setstate(std::ios_base::badbit);std::cout 78 #define APP std::cout.clear();std::cout 93 static_assert(std::is_unsigned<T>::value,
"Type MUST be an unsigned integer");
95 static constexpr
size_t size = 2 *
sizeof(T);
99 Hex(T _value): value(_value)
104 inline std::ostream &operator<<(std::ostream &stream, Hex<T> hex)
106 std::ios_base::fmtflags ff = stream.flags();
107 char f = stream.fill(
' ');
109 stream << std::uppercase << std::right << std::hex << std::setfill(
'0')
110 << std::setw(hex.size) << (int) hex.value;
112 stream << std::setfill(f) << std::setiosflags(ff);
Top-level namespace for the HAN-FUN library.