forked from mpusz/mp-units
fix: magnitudes division fixed when units are divided
This commit is contained in:
@@ -436,7 +436,7 @@ template<Unit Lhs, Unit Rhs>
|
|||||||
else if constexpr (detail::is_specialization_of_scaled_unit<Lhs>)
|
else if constexpr (detail::is_specialization_of_scaled_unit<Lhs>)
|
||||||
return Lhs::mag * (Lhs::reference_unit / rhs);
|
return Lhs::mag * (Lhs::reference_unit / rhs);
|
||||||
else if constexpr (detail::is_specialization_of_scaled_unit<Rhs>)
|
else if constexpr (detail::is_specialization_of_scaled_unit<Rhs>)
|
||||||
return Rhs::mag * (lhs / Rhs::reference_unit);
|
return mag<1> / Rhs::mag * (lhs / Rhs::reference_unit);
|
||||||
else
|
else
|
||||||
return detail::expr_divide<derived_unit, struct one, detail::type_list_of_unit_less>(lhs, rhs);
|
return detail::expr_divide<derived_unit, struct one, detail::type_list_of_unit_less>(lhs, rhs);
|
||||||
}
|
}
|
||||||
|
@@ -457,6 +457,8 @@ static_assert(convertible(si::kilo<metre>, kilometre));
|
|||||||
static_assert(convertible(mag<1000> * metre, si::kilo<metre>));
|
static_assert(convertible(mag<1000> * metre, si::kilo<metre>));
|
||||||
static_assert(convertible(mag<1000> * metre, kilometre));
|
static_assert(convertible(mag<1000> * metre, kilometre));
|
||||||
|
|
||||||
|
static_assert(mag<60> * metre / second == metre / (mag<ratio{1, 60}> * second));
|
||||||
|
|
||||||
static_assert(metre != kilometre);
|
static_assert(metre != kilometre);
|
||||||
static_assert(convertible(metre, kilometre));
|
static_assert(convertible(metre, kilometre));
|
||||||
static_assert(mag<100> * metre != kilometre);
|
static_assert(mag<100> * metre != kilometre);
|
||||||
|
Reference in New Issue
Block a user