9#if __has_include(<format>) && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION >= 170000)
18#if __has_include(<format>) && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION >= 170000)
19template <
class... Args>
void trace(std::format_string<Args...> format, Args&&... args) {
23template <
class... Args>
void trace(Args&&...) {}
32#if __has_include(<format>) && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION >= 170000)
33template <
class... Args>
void debug(std::format_string<Args...> format, Args&&... args) {
37template <
class... Args>
void debug(Args&&...) {}
42#if __has_include(<format>) && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION >= 170000)
43template <
class... Args>
void info(std::format_string<Args...> format, Args&&... args) {
47template <
class... Args>
void info(Args&&...) {}
54#if __has_include(<format>) && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION >= 170000)
55template <
class... Args>
void log(
std::string_view levelName, std::format_string<Args...> format, Args&&... args) {
59template <
class... Args>
void log(Args&&...) {}
64#if __has_include(<format>) && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION >= 170000)
65template <
class... Args>
void warn(std::format_string<Args...> format, Args&&... args) {
69template <
class... Args>
void warn(Args&&...) {}
74#if __has_include(<format>) && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION >= 170000)
75template <
class... Args>
void error(std::format_string<Args...> format, Args&&... args) {
79template <
class... Args>
void error(Args&&...) {}
Contains jngl::Vec2 class.
std::string simpleDemangle(std::string_view mangled)
Demangle a mangled C++ type name, e.g.
void debug(const std::string &)
Print a log message only in debug builds (i.e. when NDEBUG is not defined)
void log(std::string_view levelName, const std::string &)
Same level as "info", but with custom level name.