diff --git a/src/core/include/mp-units/quantity_spec.h b/src/core/include/mp-units/quantity_spec.h index 1df58976..34280967 100644 --- a/src/core/include/mp-units/quantity_spec.h +++ b/src/core/include/mp-units/quantity_spec.h @@ -658,6 +658,13 @@ struct explode_to_equation_result { specs_convertible_result result; }; +#if UNITS_COMP_CLANG + +template +explode_to_equation_result(Q, specs_convertible_result) -> explode_to_equation_result; + +#endif + template requires requires { Q::_equation_; } [[nodiscard]] consteval auto explode_to_equation(Q q) @@ -688,6 +695,13 @@ struct explode_result { } }; +#if UNITS_COMP_CLANG + +template +explode_result(Q) -> explode_result; + +#endif + template [[nodiscard]] consteval auto explode(Q q); @@ -851,6 +865,13 @@ struct extract_results { Elem elem{}; }; +#if UNITS_COMP_CLANG + +template +extract_results(bool, Ts...) -> extract_results; + +#endif + template [[nodiscard]] consteval auto extract_convertible_quantities(From from, To to) { diff --git a/src/core/include/mp-units/unit.h b/src/core/include/mp-units/unit.h index ca433c39..81fe5701 100644 --- a/src/core/include/mp-units/unit.h +++ b/src/core/include/mp-units/unit.h @@ -282,6 +282,13 @@ struct canonical_unit { U reference_unit; }; +#if UNITS_COMP_CLANG + +template +canonical_unit(M, U) -> canonical_unit; + +#endif + template [[nodiscard]] consteval auto get_canonical_unit_impl(T t, const named_unit&);