diff --git a/include/fmt/core.h b/include/fmt/core.h index 82b7d4a2..284cf708 100644 --- a/include/fmt/core.h +++ b/include/fmt/core.h @@ -1988,11 +1988,11 @@ OutputIt vformat_to( fmt::format_to(std::back_inserter(out), "{}", 42); \endrst */ +// We cannot use FMT_ENABLE_IF because of a bug in gcc 8.3. template , - FMT_ENABLE_IF(detail::is_output_iterator::value&& - detail::is_string::value)> -inline OutputIt format_to(OutputIt out, const S& format_str, Args&&... args) { + bool enable = detail::is_output_iterator>::value> +inline auto format_to(OutputIt out, const S& format_str, Args&&... args) -> + typename std::enable_if::type { const auto& vargs = fmt::make_args_checked(format_str, args...); return vformat_to(out, to_string_view(format_str), vargs); } @@ -2023,8 +2023,7 @@ inline format_to_n_result vformat_to_n( \endrst */ template ::value&& detail:: - is_output_iterator>::value)> + FMT_ENABLE_IF(detail::is_output_iterator>::value)> inline format_to_n_result format_to_n(OutputIt out, size_t n, const S& format_str, const Args&... args) {