facebook / mvfst

An implementation of the QUIC transport protocol.
MIT License
1.5k stars 242 forks source link

Compilation fails: error: static assertion failed due to requirement 'formattable': Cannot format an argument. To make type T formattable provide a formatter<T> specialization #305

Closed yurivict closed 1 year ago

yurivict commented 1 year ago
In file included from /usr/ports/net/mvfst/work/mvfst-3e9b815/quic/server/QuicServerWorker.cpp:8:
In file included from /usr/local/include/fmt/format.h:48:
/usr/local/include/fmt/core.h:1756:3: error: static assertion failed due to requirement 'formattable': Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
  static_assert(
  ^
/usr/local/include/fmt/core.h:1777:10: note: in instantiation of function template specialization 'fmt::detail::make_value<fmt::basic_format_context<fmt::appender, char>, quic::LocalErrorCode &>' requested here 
  return make_value<Context>(val);
         ^
/usr/local/include/fmt/core.h:1899:23: note: in instantiation of function template specialization 'fmt::detail::make_arg<true, fmt::basic_format_context<fmt::appender, char>, fmt::detail::type::custom_type, quic::LocalErrorCode &, 0>' requested here
        data_{detail::make_arg<
                      ^
/usr/local/include/fmt/core.h:1918:10: note: in instantiation of function template specialization 'fmt::format_arg_store<fmt::basic_format_context<fmt::appender, char>, const char *, quic::LocalErrorCode, std::string>::format_arg_store<const char *&, quic::LocalErrorCode &, std::string &>' requested here
  return {FMT_FORWARD(args)...};
         ^
/usr/local/include/fmt/core.h:3206:28: note: in instantiation of function template specialization 'fmt::make_format_args<fmt::basic_format_context<fmt::appender, char>, const char *&, quic::LocalErrorCode &, std::string &>' requested here
  return vformat(fmt, fmt::make_format_args(args...));
                           ^
/usr/ports/net/mvfst/work/mvfst-3e9b815/quic/server/QuicServerWorker.cpp:697:21: note: in instantiation of function template specialization 'fmt::format<const char *, quic::LocalErrorCode, std::string>' requested here
    VLOG(3) << fmt::format(
                    ^
2 warnings and 1 error generated.

Revision: 3e9b815 libfmt-9.1.0 clang-15 FreeBSD 13.2

carlocab commented 1 year ago

Fixed by either of #303 or #304.

jbeshay commented 1 year ago

There is an internal fix similar to both of these PRs that will be pushed shortly.

carlocab commented 1 year ago

Thanks @jbeshay!