From 916e54294ac3ad3a0fdbe4ab5e9c6be97370e81c Mon Sep 17 00:00:00 2001 From: Stephan Lachnit Date: Sat, 13 Jan 2024 11:18:42 +0100 Subject: [PATCH] Add constructor to spdlog::source_loc using std::source_location Signed-off-by: Stephan Lachnit --- include/spdlog/common.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/spdlog/common.h b/include/spdlog/common.h index f6fb0fe7..77a73b86 100644 --- a/include/spdlog/common.h +++ b/include/spdlog/common.h @@ -105,6 +105,12 @@ #endif #endif +// Add constructor to spdlog::source_loc using std::source_location +#if __cpp_lib_source_location >= 201907L + #define SPDLOG_STD_SOURCE_LOCATION + #include +#endif + #ifndef SPDLOG_FUNCTION #define SPDLOG_FUNCTION static_cast(__FUNCTION__) #endif @@ -324,6 +330,13 @@ struct source_loc { line{line_in}, funcname{funcname_in} {} + #ifdef SPDLOG_STD_SOURCE_LOCATION + SPDLOG_CONSTEXPR source_loc(const std::source_location& loc) + : filename{loc.file_name()}, + line{static_cast(loc.line())}, + funcname{loc.function_name()} {} + #endif + SPDLOG_CONSTEXPR bool empty() const SPDLOG_NOEXCEPT { return line == 0; } const char *filename{nullptr}; int line{0};