From 8bc3be2f1e1bda62ed5be891670635ab8e7eaee3 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Wed, 11 Jun 2025 19:00:39 +0200 Subject: [PATCH] fix: gcc-15 workaround Resolves #702 --- src/core/include/mp-units/format.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/core/include/mp-units/format.h b/src/core/include/mp-units/format.h index 3a8f2ed2..685b9d1b 100644 --- a/src/core/include/mp-units/format.h +++ b/src/core/include/mp-units/format.h @@ -105,6 +105,10 @@ constexpr It format_global_buffer(It out, const fill_align_width_format_specs +inline constexpr bool GCC_120625_is_complete = requires { sizeof(T) > 0; }; + } // namespace mp_units::detail // @@ -114,7 +118,8 @@ MP_UNITS_EXPORT_END // dimension-spec = [character-set]; // character-set = 'U' | 'P'; // -template +template + requires mp_units::detail::GCC_120625_is_complete && mp_units::Dimension class MP_UNITS_STD_FMT::formatter { struct format_specs : mp_units::detail::fill_align_width_format_specs, mp_units::dimension_symbol_formatting {}; format_specs specs_{}; @@ -186,7 +191,8 @@ public: // unit-symbol-solidus = '1' | 'a' | 'n'; // unit-symbol-separator = 's' | 'd'; // -template +template + requires mp_units::detail::GCC_120625_is_complete && mp_units::Unit class MP_UNITS_STD_FMT::formatter { struct format_specs : mp_units::detail::fill_align_width_format_specs, mp_units::unit_symbol_formatting {}; format_specs specs_{};