diff --git a/src/include/units/quantity.h b/src/include/units/quantity.h index e40624db..10abe1c1 100644 --- a/src/include/units/quantity.h +++ b/src/include/units/quantity.h @@ -203,12 +203,12 @@ public: return quantity(lhs.count() + rhs.count()); } - template - requires std::regular_invocable, Rep, Rep2> - [[nodiscard]] friend constexpr Quantity auto operator+(const quantity& lhs, const quantity& rhs) + template + requires std::regular_invocable, Rep, Rep2> && equivalent + [[nodiscard]] friend constexpr Quantity auto operator+(const quantity& lhs, const quantity& rhs) { using common_rep = decltype(lhs.count() + rhs.count()); - using ret = common_quantity, common_rep>; + using ret = common_quantity, common_rep>; return ret(ret(lhs).count() + ret(rhs).count()); } @@ -218,12 +218,12 @@ public: return quantity(lhs.count() - rhs.count()); } - template - requires std::regular_invocable, Rep, Rep2> - [[nodiscard]] friend constexpr Quantity auto operator-(const quantity& lhs, const quantity& rhs) + template + requires std::regular_invocable, Rep, Rep2> && equivalent + [[nodiscard]] friend constexpr Quantity auto operator-(const quantity& lhs, const quantity& rhs) { using common_rep = decltype(lhs.count() - rhs.count()); - using ret = common_quantity, common_rep>; + using ret = common_quantity, common_rep>; return ret(ret(lhs).count() - ret(rhs).count()); }