fix: magnitudes division fixed when units are divided

This commit is contained in:
Mateusz Pusz
2023-06-08 19:08:41 +02:00
parent f5e9b42fe1
commit f853f1f4ef
2 changed files with 3 additions and 1 deletions

View File

@@ -436,7 +436,7 @@ template<Unit Lhs, Unit Rhs>
else if constexpr (detail::is_specialization_of_scaled_unit<Lhs>)
return Lhs::mag * (Lhs::reference_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
return detail::expr_divide<derived_unit, struct one, detail::type_list_of_unit_less>(lhs, rhs);
}

View File

@@ -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, kilometre));
static_assert(mag<60> * metre / second == metre / (mag<ratio{1, 60}> * second));
static_assert(metre != kilometre);
static_assert(convertible(metre, kilometre));
static_assert(mag<100> * metre != kilometre);