diff --git a/common/main/d_srcloc.h b/common/main/d_srcloc.h index 40eb9506f..8881f5e94 100644 --- a/common/main/d_srcloc.h +++ b/common/main/d_srcloc.h @@ -54,7 +54,7 @@ class location_wrapper unsigned line; public: template - using scratch_buffer = char[N]; + using scratch_buffer = std::array; location_wrapper(const char *const f = __builtin_FILE(), const unsigned l = __builtin_LINE()) : file(f), line(l) { @@ -72,7 +72,7 @@ public: * without accessing undefined bytes. */ template - std::span prepare_buffer(char (&buffer)[N], const char *const text, const std::size_t len) const + std::span prepare_buffer(std::array &buffer, const char *const text, const std::size_t len) const { const auto written = std::snprintf(buffer, sizeof(buffer), "%s:%u: %.*s", file, line, static_cast(len), text); return {buffer, written}; @@ -82,7 +82,7 @@ public: * overload for the function to receive this result. */ template - std::span prepare_buffer(char (&buffer)[N], char *const text, const std::size_t len) const + std::span prepare_buffer(std::array &buffer, char *const text, const std::size_t len) const { return {buffer, prepare_buffer(buffer, const_cast(text), len).size()}; }