diff --git a/src/windows-emulator/logger.hpp b/src/windows-emulator/logger.hpp index 139d0a1d..2211133c 100644 --- a/src/windows-emulator/logger.hpp +++ b/src/windows-emulator/logger.hpp @@ -1,5 +1,11 @@ #pragma once +#ifdef OS_WINDOWS +#define FORMAT_ATTRIBUTE(fmt_pos, var_pos) +#else +#define FORMAT_ATTRIBUTE(fmt_pos, var_pos) __attribute__((format( printf, fmt_pos, var_pos))) +#endif + enum class color { black, @@ -17,34 +23,34 @@ enum class color class logger { public: - void print(color c, const char* message, ...) const; + void print(color c, const char* message, ...) const FORMAT_ATTRIBUTE(3, 4); template - void info(const char* message, Args... args) + void info(const char* message, Args... args) const { this->print(color::cyan, message, args...); } template - void warn(const char* message, Args... args) + void warn(const char* message, Args... args) const { this->print(color::yellow, message, args...); } template - void error(const char* message, Args... args) + void error(const char* message, Args... args) const { this->print(color::red, message, args...); } template - void success(const char* message, Args... args) + void success(const char* message, Args... args) const { this->print(color::green, message, args...); } template - void log(const char* message, Args... args) + void log(const char* message, Args... args) const { this->print(color::gray, message, args...); }