forked from mpusz/mp-units
fix: remove implied support for unallowed syntaxes on quantity kinds and references
This commit is contained in:
committed by
Mateusz Pusz
parent
5914ae2260
commit
376c402fa0
@@ -300,9 +300,8 @@ template<QuantityKind QK1, QuantityKindEquivalentTo<QK1> QK2>
|
|||||||
return detail::make_quantity_kind<QK1>(lhs.common() - rhs.common());
|
return detail::make_quantity_kind<QK1>(lhs.common() - rhs.common());
|
||||||
}
|
}
|
||||||
|
|
||||||
template<QuantityKind QK, typename QuantityOrReference>
|
template<QuantityKind QK, Quantity Q>
|
||||||
requires Quantity<QuantityOrReference> || Reference<QuantityOrReference>
|
[[nodiscard]] constexpr QuantityKind auto operator*(const QK& lhs, const Q& rhs)
|
||||||
[[nodiscard]] constexpr QuantityKind auto operator*(const QK& lhs, const QuantityOrReference& rhs)
|
|
||||||
requires requires { lhs.common() * rhs; }
|
requires requires { lhs.common() * rhs; }
|
||||||
{
|
{
|
||||||
return detail::downcasted_kind<QK>(lhs.common() * rhs);
|
return detail::downcasted_kind<QK>(lhs.common() * rhs);
|
||||||
@@ -322,13 +321,11 @@ template<QuantityKind QK1, QuantityKindRelatedTo<QK1> QK2>
|
|||||||
return detail::downcasted_kind<QK1>(lhs.common() * rhs.common());
|
return detail::downcasted_kind<QK1>(lhs.common() * rhs.common());
|
||||||
}
|
}
|
||||||
|
|
||||||
template<QuantityKind QK, typename QuantityOrReference>
|
template<QuantityKind QK, Quantity Q>
|
||||||
requires Quantity<QuantityOrReference> || Reference<QuantityOrReference>
|
[[nodiscard]] constexpr QuantityKind auto operator/(const QK& lhs, const Q& rhs)
|
||||||
[[nodiscard]] constexpr QuantityKind auto operator/(const QK& lhs, const QuantityOrReference& rhs)
|
|
||||||
requires requires { lhs.common() / rhs; }
|
requires requires { lhs.common() / rhs; }
|
||||||
{
|
{
|
||||||
if constexpr (Quantity<QuantityOrReference>)
|
gsl_ExpectsAudit(rhs.count() != quantity_values<typename Q::rep>::zero());
|
||||||
gsl_ExpectsAudit(rhs.count() != quantity_values<typename QuantityOrReference::rep>::zero());
|
|
||||||
return detail::downcasted_kind<QK>(lhs.common() / rhs);
|
return detail::downcasted_kind<QK>(lhs.common() / rhs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user