From fbb70eec5cd967c9fad075fb5b1b15d879dec9bf Mon Sep 17 00:00:00 2001 From: Greg Sjaardema Date: Wed, 30 Jun 2021 07:33:30 -0600 Subject: [PATCH] suppress unused variable warnings (#2381) * suppress unused variable warnings An arguably better method for suppressing unused variable warnings. The `(void)var` method does not work on many intel compiilers. This is from Herb Sutter's blog post https://herbsutter.com/2009/10/18/mailbag-shutting-up-compiler-warnings/ * Format to eliminate long lines * Run clang-format --- include/fmt/core.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/include/fmt/core.h b/include/fmt/core.h index 27c1ff51..4689d419 100644 --- a/include/fmt/core.h +++ b/include/fmt/core.h @@ -333,6 +333,12 @@ struct monostate { constexpr monostate() {} }; +// Eliminate "unused variable" warnings on all compilers. The +// `(void)var` method does not work on many intel compilers. This is +// from Herb Sutter, "Shutting up compiler warnings", +// https://herbsutter.com/2009/10/18/mailbag-shutting-up-compiler-warnings/ +template void ignore_unused(const T&) {} + // An enable_if helper to be used in template parameters which results in much // shorter symbols: https://godbolt.org/z/sWw4vP. Extra parentheses are needed // to workaround a bug in MSVC 2019 (see #1140 and #1186). @@ -2739,7 +2745,7 @@ void check_format_string(S format_str) { remove_cvref_t...>; FMT_CONSTEXPR bool invalid_format = (parse_format_string(s, checker(s, {})), true); - (void)invalid_format; + ignore_unused(invalid_format); } template