fix: missing get_common_unit() overload added

Resolves #666
This commit is contained in:
Mateusz Pusz
2025-01-21 12:37:54 +01:00
parent a489548cd3
commit becb456da5
2 changed files with 16 additions and 0 deletions
@@ -750,6 +750,16 @@ template<Unit... Us, Unit NewUnit>
return get_common_unit(cu, nu);
}
template<Unit Front, Unit... Rest, Unit... Us>
requires(interconvertible(common_unit<Front, Rest...>{}, common_unit<Us...>{}))
[[nodiscard]] consteval Unit auto get_common_unit(common_unit<Front, Rest...>, common_unit<Us...>)
{
if constexpr (sizeof...(Rest) == 1)
return get_common_unit(Front{}, get_common_unit(Rest{}..., common_unit<Us...>{}));
else
return get_common_unit(Front{}, get_common_unit(common_unit<Rest...>{}, common_unit<Us...>{}));
}
[[nodiscard]] consteval Unit auto get_common_unit(Unit auto u1, Unit auto u2, Unit auto u3, Unit auto... rest)
requires requires { get_common_unit(get_common_unit(u1, u2), u3, rest...); }
{