forked from mpusz/mp-units
refactor: common_quantity_spec now starts with a check of arguments equality
This commit is contained in:
@@ -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...);
|
||||||
|
Reference in New Issue
Block a user