From a3f3f2ec9a2657acf0b5a762dc3979ac4900b9d7 Mon Sep 17 00:00:00 2001 From: Justin Riddell Date: Wed, 28 Aug 2024 19:25:39 +0100 Subject: [PATCH] Fix gcc 8.1 - 8.3 bug and compilation (#4131) Fixes issue #4129 --- include/fmt/base.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/fmt/base.h b/include/fmt/base.h index 671c2ec7..7bae9789 100644 --- a/include/fmt/base.h +++ b/include/fmt/base.h @@ -332,6 +332,7 @@ template using make_unsigned_t = typename std::make_unsigned::type; template using underlying_t = typename std::underlying_type::type; +template using decay_t = typename std::decay::type; #if FMT_GCC_VERSION && FMT_GCC_VERSION < 500 // A workaround for gcc 4.8 to make void_t work in a SFINAE context. @@ -1580,7 +1581,8 @@ template <> struct is_output_iterator : std::true_type {}; template struct is_output_iterator< - It, T, void_t()++ = std::declval())>> + It, T, + void_t&>()++ = std::declval())>> : std::true_type {}; // A type-erased reference to an std::locale to avoid a heavy include.