fmtlib / fmt

A modern formatting library
https://fmt.dev
Other
19.83k stars 2.42k forks source link

fix: Make basic_format_arg::visit() const #4043

Closed nebkat closed 3 days ago

nebkat commented 3 days ago

https://github.com/fmtlib/fmt/blob/24c1f886afc35278ba95556345adcb9804f4c4f1/include/fmt/base.h#L1812C1-L1816C2

visit_format_arg accepts a const basic_format_arg & and forwards to basic_format_arg::visit() which is not const.

template <typename Visitor, typename Context>
FMT_DEPRECATED FMT_CONSTEXPR auto visit_format_arg(
    Visitor&& vis, const basic_format_arg<Context>& arg) -> decltype(vis(0)) {
  return arg.visit(static_cast<Visitor&&>(vis));
}

Not sure if this is the correct fix, but causing issues in pre-11 formatters still using visit_format_arg.

vitaut commented 3 days ago

Thanks for the fix!