diff --git a/src/include/units/quantity_cast.h b/src/include/units/quantity_cast.h index 38f821a9..73702716 100644 --- a/src/include/units/quantity_cast.h +++ b/src/include/units/quantity_cast.h @@ -346,10 +346,10 @@ template */ template [[nodiscard]] constexpr QuantityPointKind auto quantity_point_kind_cast(const quantity_point_kind& qpk) - requires (is_specialization_of && - requires { quantity_kind_cast(qpk.relative()); }) || - (PointKind && UnitOf) || - requires { quantity_kind_cast(qpk.relative()); } + requires requires { requires is_specialization_of; + requires requires { quantity_kind_cast(qpk.relative()); }; } || + requires { requires PointKind && UnitOf; } || + requires { requires requires { quantity_kind_cast(qpk.relative()); }; } { if constexpr (is_specialization_of) return CastSpec(quantity_kind_cast(qpk.relative())); diff --git a/src/include/units/quantity_point_kind.h b/src/include/units/quantity_point_kind.h index 0503bba1..62142205 100644 --- a/src/include/units/quantity_point_kind.h +++ b/src/include/units/quantity_point_kind.h @@ -141,27 +141,27 @@ public: template [[nodiscard]] friend constexpr QuantityPointKind auto operator+(const quantity_point_kind& lhs, const QK& rhs) - requires requires { lhs.relative() + rhs; } + requires requires(quantity_kind_type qk) { qk + rhs; } { return units::quantity_point_kind(lhs.relative() + rhs); } template [[nodiscard]] friend constexpr QuantityPointKind auto operator+(const QK& lhs, const quantity_point_kind& rhs) - requires requires { lhs + rhs.relative(); } + requires requires(quantity_kind_type qk) { lhs + qk; } { return units::quantity_point_kind(lhs + rhs.relative()); } template [[nodiscard]] friend constexpr QuantityPointKind auto operator-(const quantity_point_kind& lhs, const QK& rhs) - requires requires { lhs.relative() - rhs; } + requires requires(quantity_kind_type qk) { qk - rhs; } { return units::quantity_point_kind(lhs.relative() - rhs); } [[nodiscard]] friend constexpr QuantityKind auto operator-(const quantity_point_kind& lhs, const quantity_point_kind& rhs) - requires requires { lhs.relative() - rhs.relative(); } + requires requires(quantity_kind_type qk) { qk - qk; } { return lhs.relative() - rhs.relative(); }