diff --git a/src/core/include/mp-units/framework/reference.h b/src/core/include/mp-units/framework/reference.h index c6424e1f..9bb6b15d 100644 --- a/src/core/include/mp-units/framework/reference.h +++ b/src/core/include/mp-units/framework/reference.h @@ -87,37 +87,40 @@ struct reference { } template - [[nodiscard]] friend consteval detail::reference_t operator*(reference, reference) + [[nodiscard]] friend consteval detail::reference_t<(Q{} * Q2{}), (U{} * U2{})> operator*(reference, reference) { return {}; } template - [[nodiscard]] friend consteval detail::reference_t operator*(reference, U2) + [[nodiscard]] friend consteval detail::reference_t<((Q{} * get_quantity_spec(U2{}))), (U{} * U2{})> operator*(reference, + U2) { return {}; } template - [[nodiscard]] friend consteval detail::reference_t operator*(U1, reference) + [[nodiscard]] friend consteval detail::reference_t<(get_quantity_spec(U1{}) * Q{}), (U1{} * U{})> operator*(U1, + reference) { return {}; } template - [[nodiscard]] friend consteval detail::reference_t operator/(reference, reference) + [[nodiscard]] friend consteval detail::reference_t<(Q{} / Q2{}), (U{} / U2{})> operator/(reference, reference) { return {}; } template - [[nodiscard]] friend consteval detail::reference_t operator/(reference, U2) + [[nodiscard]] friend consteval detail::reference_t<(Q{} / get_quantity_spec(U2{})), (U{} / U2{})> operator/(reference, + U2) { return {}; } template - [[nodiscard]] friend consteval detail::reference_t operator/(U1, reference) + [[nodiscard]] friend consteval detail::reference_t<(get_quantity_spec(U1{}) / Q{}), (U1{} / U{})> operator/(U1, reference) { return {}; }