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/
This commit is contained in:
Greg Sjaardema 2021-06-23 10:33:35 -06:00 committed by GitHub
parent 31a5f0d399
commit 2057701d02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -332,6 +332,11 @@ struct monostate {
constexpr 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<class T> void ignore_unused( const T& ) { }
// An enable_if helper to be used in template parameters which results in much // 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 // shorter symbols: https://godbolt.org/z/sWw4vP. Extra parentheses are needed
// to workaround a bug in MSVC 2019 (see #1140 and #1186). // to workaround a bug in MSVC 2019 (see #1140 and #1186).
@ -2731,7 +2736,7 @@ void check_format_string(S format_str) {
remove_cvref_t<Args>...>; remove_cvref_t<Args>...>;
FMT_CONSTEXPR bool invalid_format = FMT_CONSTEXPR bool invalid_format =
(parse_format_string<true>(s, checker(s, {})), true); (parse_format_string<true>(s, checker(s, {})), true);
(void)invalid_format; ignore_unused(invalid_format);
} }
template <typename Char> template <typename Char>