Skip to content

Commit

Permalink
Fix gcc 8.1 - 8.3 bug and compilation
Browse files Browse the repository at this point in the history
Fixes issue #4129
  • Loading branch information
Arghnews committed Aug 28, 2024
1 parent e3676ca commit 15fbb49
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion include/fmt/base.h
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,7 @@ template <typename T>
using make_unsigned_t = typename std::make_unsigned<T>::type;
template <typename T>
using underlying_t = typename std::underlying_type<T>::type;
template <typename T> using decay_t = typename std::decay<T>::type;

#if FMT_GCC_VERSION && FMT_GCC_VERSION < 500
// A workaround for gcc 4.8 to make void_t work in a SFINAE context.
Expand Down Expand Up @@ -1580,7 +1581,8 @@ template <> struct is_output_iterator<appender, char> : std::true_type {};

template <typename It, typename T>
struct is_output_iterator<
It, T, void_t<decltype(*std::declval<It&>()++ = std::declval<T>())>>
It, T,
void_t<decltype(*std::declval<decay_t<It>&>()++ = std::declval<T>())>>
: std::true_type {};

// A type-erased reference to an std::locale to avoid a heavy <locale> include.
Expand Down

0 comments on commit 15fbb49

Please sign in to comment.