diff --git a/src/core/include/mp_units/bits/value_cast.h b/src/core/include/mp_units/bits/value_cast.h index 370f40f7..41b8e7b7 100644 --- a/src/core/include/mp_units/bits/value_cast.h +++ b/src/core/include/mp_units/bits/value_cast.h @@ -44,7 +44,7 @@ class quantity; * @tparam ToU a unit to use for a target quantity */ template - requires(interconvertible(ToU, get_unit(R))) + requires(convertible_to(get_unit(R), ToU)) [[nodiscard]] constexpr Quantity auto value_cast(const quantity& q) { if constexpr (detail::is_specialization_of_reference || !AssociatedUnit>) { diff --git a/src/core/include/mp_units/reference.h b/src/core/include/mp_units/reference.h index 94bbe1cf..f32a2db9 100644 --- a/src/core/include/mp_units/reference.h +++ b/src/core/include/mp_units/reference.h @@ -130,21 +130,21 @@ template void /*Use `q * (1 * r)` rather than `q * r`.*/ operator*(Quantity auto, Reference auto) = delete; template -[[nodiscard]] consteval bool interconvertible(reference, reference) +[[nodiscard]] consteval bool convertible_to(reference, reference) { - return interconvertible(Q1, Q2) && interconvertible(U1, U2); + return convertible_to(Q1, Q2) && convertible_to(U1, U2); } template -[[nodiscard]] consteval bool interconvertible(reference, U2 u2) +[[nodiscard]] consteval bool convertible_to(reference, U2 u2) { - return interconvertible(Q1, get_quantity_spec(u2)) && interconvertible(U1, u2); + return convertible_to(Q1, get_quantity_spec(u2)) && convertible_to(U1, u2); } template -[[nodiscard]] consteval bool interconvertible(U1 u1, reference r2) +[[nodiscard]] consteval bool convertible_to(U1 u1, reference) { - return interconvertible(r2, u1); + return convertible_to(get_quantity_spec(u1), Q2) && convertible_to(u1, U2); } [[nodiscard]] consteval auto common_reference(AssociatedUnit auto u1, AssociatedUnit auto u2, diff --git a/src/core/include/mp_units/system_reference.h b/src/core/include/mp_units/system_reference.h index 354a5797..3935c9e9 100644 --- a/src/core/include/mp_units/system_reference.h +++ b/src/core/include/mp_units/system_reference.h @@ -62,7 +62,7 @@ struct system_reference { static constexpr auto coherent_unit = CoU; template - requires(interconvertible(coherent_unit, U{})) + requires(convertible_to(coherent_unit, U{})) [[nodiscard]] constexpr reference operator[](U) const { return {};