refactor: common_quantity_spec now starts with a check of arguments equality

This commit is contained in:
Mateusz Pusz
2023-02-08 22:15:44 -08:00
parent 3686397882
commit bb6c942e0c

View File

@@ -529,14 +529,16 @@ template<QuantitySpec Q1, QuantitySpec Q2>
[[nodiscard]] consteval QuantitySpec auto common_quantity_spec(Q1 q1, Q2 q2) [[nodiscard]] consteval QuantitySpec auto common_quantity_spec(Q1 q1, Q2 q2)
requires(get_kind(q1) == get_kind(q2)) requires(get_kind(q1) == get_kind(q2))
{ {
if constexpr (detail::have_common_base(q1, q2)) if constexpr (q1 == q2)
return detail::find_common_base(q1, q2); return q1;
else if constexpr (detail::have_common_base(q1, q2))
return detail::get_common_base(q1, q2);
else else
return get_kind(q1); return get_kind(q1);
} }
[[nodiscard]] consteval auto common_quantity_spec(QuantitySpec auto q1, QuantitySpec auto q2, QuantitySpec auto q3, [[nodiscard]] consteval QuantitySpec auto common_quantity_spec(QuantitySpec auto q1, QuantitySpec auto q2,
QuantitySpec auto... rest) QuantitySpec auto q3, QuantitySpec auto... rest)
requires requires { common_quantity_spec(common_quantity_spec(q1, q2), q3, rest...); } requires requires { common_quantity_spec(common_quantity_spec(q1, q2), q3, rest...); }
{ {
return common_quantity_spec(common_quantity_spec(q1, q2), q3, rest...); return common_quantity_spec(common_quantity_spec(q1, q2), q3, rest...);