From a10e27a720772517f5fd4a12f5a983acbf7a29f4 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Thu, 21 Sep 2023 21:21:13 -0400 Subject: [PATCH] Update std::format check --- include/cpptrace/cpptrace.hpp | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/include/cpptrace/cpptrace.hpp b/include/cpptrace/cpptrace.hpp index 01ae4d8..f86e747 100644 --- a/include/cpptrace/cpptrace.hpp +++ b/include/cpptrace/cpptrace.hpp @@ -8,8 +8,13 @@ #include #include -#ifdef __cpp_lib_format -#include +#if __cplusplus >= 202002L + #ifdef __has_include + #if __has_include() + #define CPPTRACE_STD_FORMAT + #include + #endif + #endif #endif #if defined(_WIN32) || defined(__CYGWIN__) @@ -249,20 +254,20 @@ namespace cpptrace { }; } -#ifdef __cpp_lib_format -template <> -struct std::formatter : std::formatter { - auto format(cpptrace::stacktrace_frame frame, format_context& ctx) const { - return formatter::format(frame.to_string(), ctx); - } -}; +#if defined(CPPTRACE_STD_FORMAT) && defined(__cpp_lib_format) + template <> + struct std::formatter : std::formatter { + auto format(cpptrace::stacktrace_frame frame, format_context& ctx) const { + return formatter::format(frame.to_string(), ctx); + } + }; -template <> -struct std::formatter : std::formatter { - auto format(cpptrace::stacktrace trace, format_context& ctx) const { - return formatter::format(trace.to_string(), ctx); - } -}; + template <> + struct std::formatter : std::formatter { + auto format(cpptrace::stacktrace trace, format_context& ctx) const { + return formatter::format(trace.to_string(), ctx); + } + }; #endif #endif