From fc76cb28d6d212044dda34228a81dc1347a4cc52 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Mon, 24 Jun 2024 15:15:24 -0500 Subject: [PATCH] feat: formatting funcitons marked as `constexpr` to enable compile-time text formatting --- src/core/include/mp-units/format.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/include/mp-units/format.h b/src/core/include/mp-units/format.h index d901b8dc..95c02559 100644 --- a/src/core/include/mp-units/format.h +++ b/src/core/include/mp-units/format.h @@ -76,7 +76,7 @@ template } template -OutputIt format_global_buffer(OutputIt out, const fill_align_width_format_specs& specs) +constexpr OutputIt format_global_buffer(OutputIt out, const fill_align_width_format_specs& specs) { MP_UNITS_STD_FMT::format_to(out, "{{:"); if (specs.fill.size() != 1 || specs.fill[0] != ' ') { @@ -148,7 +148,7 @@ public: } template - auto format(const D& d, FormatContext& ctx) const -> decltype(ctx.out()) + constexpr auto format(const D& d, FormatContext& ctx) const -> decltype(ctx.out()) { auto specs = specs_; mp_units::detail::handle_dynamic_spec(specs.width, specs.width_ref, ctx); @@ -237,7 +237,7 @@ public: } template - auto format(const U& u, FormatContext& ctx) const -> decltype(ctx.out()) + constexpr auto format(const U& u, FormatContext& ctx) const -> decltype(ctx.out()) { auto specs = specs_; mp_units::detail::handle_dynamic_spec(specs.width, specs.width_ref, ctx); @@ -436,7 +436,7 @@ class MP_UNITS_STD_FMT::formatter, Char> { } template - OutputIt format_quantity(OutputIt out, const quantity_t& q, FormatContext& ctx) const + constexpr OutputIt format_quantity(OutputIt out, const quantity_t& q, FormatContext& ctx) const { const std::locale locale = MP_UNITS_FMT_LOCALE(ctx.locale()); if (modifiers_format_str_.empty()) { @@ -468,7 +468,7 @@ public: } template - OutIt format(const quantity_t& q, MP_UNITS_STD_FMT::basic_format_context& ctx) const + constexpr OutIt format(const quantity_t& q, MP_UNITS_STD_FMT::basic_format_context& ctx) const { auto specs = specs_; mp_units::detail::handle_dynamic_spec(specs.width, specs.width_ref, ctx);