mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-04 04:44:27 +02:00
refactor: constraints for common_unit
improved
This commit is contained in:
@@ -602,10 +602,10 @@ inline constexpr struct per_mille : named_unit<basic_symbol_text{"‰", "%o"}, m
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Common unit
|
// Common unit
|
||||||
[[nodiscard]] consteval auto common_unit(Unit auto u) { return u; }
|
[[nodiscard]] consteval Unit auto common_unit(Unit auto u) { return u; }
|
||||||
|
|
||||||
template<Unit U1, Unit U2>
|
template<Unit U1, Unit U2>
|
||||||
[[nodiscard]] consteval auto common_unit(U1 u1, U2 u2)
|
[[nodiscard]] consteval Unit auto common_unit(U1 u1, U2 u2)
|
||||||
requires(detail::have_same_canonical_reference_unit(u1, u2))
|
requires(detail::have_same_canonical_reference_unit(u1, u2))
|
||||||
{
|
{
|
||||||
if constexpr (U1{} == U2{}) {
|
if constexpr (U1{} == U2{}) {
|
||||||
@@ -628,7 +628,7 @@ template<Unit U1, Unit U2>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] consteval auto common_unit(Unit auto u1, Unit auto u2, Unit auto u3, Unit auto... rest)
|
[[nodiscard]] consteval Unit auto common_unit(Unit auto u1, Unit auto u2, Unit auto u3, Unit auto... rest)
|
||||||
requires requires { common_unit(common_unit(u1, u2), u3, rest...); }
|
requires requires { common_unit(common_unit(u1, u2), u3, rest...); }
|
||||||
{
|
{
|
||||||
return common_unit(common_unit(u1, u2), u3, rest...);
|
return common_unit(common_unit(u1, u2), u3, rest...);
|
||||||
|
Reference in New Issue
Block a user