diff --git a/src/core/include/mp_units/quantity.h b/src/core/include/mp_units/quantity.h index e9fc54a4..f33e47b8 100644 --- a/src/core/include/mp_units/quantity.h +++ b/src/core/include/mp_units/quantity.h @@ -333,44 +333,44 @@ public: [[nodiscard]] friend constexpr Quantity auto operator+(const quantity& lhs, const Value& rhs) requires requires { // TODO: Simplify when Clang catches up. requires !Quantity; - requires unit == ::mp_units::one; + requires dimension == dimension_one; requires detail::InvokeResultOf, rep, Value>; } { - return (lhs.number() + rhs) * R; + return lhs + rhs * ::mp_units::one; } template [[nodiscard]] friend constexpr Quantity auto operator+(const Value& lhs, const quantity& rhs) requires requires { // TODO: Simplify when Clang catches up. requires !Quantity; - requires unit == ::mp_units::one; + requires dimension == dimension_one; requires detail::InvokeResultOf, Value, rep>; } { - return (lhs + rhs.number()) * R; + return lhs * ::mp_units::one + rhs; } template [[nodiscard]] friend constexpr Quantity auto operator-(const quantity& lhs, const Value& rhs) requires requires { // TODO: Simplify when Clang catches up. requires !Quantity; - requires unit == ::mp_units::one; + requires dimension == dimension_one; requires detail::InvokeResultOf, rep, Value>; } { - return (lhs.number() - rhs) * R; + return lhs - rhs * ::mp_units::one; } template [[nodiscard]] friend constexpr Quantity auto operator-(const Value& lhs, const quantity& rhs) requires requires { // TODO: Simplify when Clang catches up. requires !Quantity; - requires unit == ::mp_units::one; + requires dimension == dimension_one; requires detail::InvokeResultOf, Value, rep>; } { - return (lhs - rhs.number()) * R; + return lhs * ::mp_units::one - rhs; } template