From e73050a8fad60f7f42eab77ca42992e6c1b4f674 Mon Sep 17 00:00:00 2001 From: Tyler Veness Date: Thu, 25 Apr 2024 16:08:24 -0700 Subject: [PATCH] [wpimath] Templatize formatters (#6535) This is required for compatibility with libc++'s std::format. --- wpimath/src/main/native/include/frc/fmt/Eigen.h | 6 ++++-- wpimath/src/main/native/include/units/formatter.h | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/wpimath/src/main/native/include/frc/fmt/Eigen.h b/wpimath/src/main/native/include/frc/fmt/Eigen.h index 3adfaec569..4f608553c3 100644 --- a/wpimath/src/main/native/include/frc/fmt/Eigen.h +++ b/wpimath/src/main/native/include/frc/fmt/Eigen.h @@ -18,11 +18,13 @@ template requires std::derived_from> || std::derived_from> struct fmt::formatter { - constexpr auto parse(fmt::format_parse_context& ctx) { + template + constexpr auto parse(ParseContext& ctx) { return m_underlying.parse(ctx); } - auto format(const Derived& mat, fmt::format_context& ctx) const { + template + auto format(const Derived& mat, FmtContext& ctx) const { auto out = ctx.out(); for (int row = 0; row < mat.rows(); ++row) { diff --git a/wpimath/src/main/native/include/units/formatter.h b/wpimath/src/main/native/include/units/formatter.h index 1c17b0a185..e7f69910a0 100644 --- a/wpimath/src/main/native/include/units/formatter.h +++ b/wpimath/src/main/native/include/units/formatter.h @@ -20,7 +20,8 @@ template struct fmt::formatter>> { - constexpr auto parse(fmt::format_parse_context& ctx) { + template + constexpr auto parse(ParseContext& ctx) { return m_underlying.parse(ctx); } @@ -30,7 +31,8 @@ struct fmt::formatter + auto format(const Unit& obj, FmtContext& ctx) const { using Units = typename Unit::unit_type; using BaseUnits = units::unit,