diff --git a/src/core/include/mp_units/quantity.h b/src/core/include/mp_units/quantity.h index 5f0c5d4e..e9fc54a4 100644 --- a/src/core/include/mp_units/quantity.h +++ b/src/core/include/mp_units/quantity.h @@ -61,7 +61,7 @@ concept Harmonic = // exposition only template concept QuantityConvertibleTo = // exposition only - Quantity && Quantity && explicitly_convertible_to(QFrom::quantity_spec, QTo::quantity_spec) && + Quantity && Quantity && implicitly_convertible_to(QFrom::quantity_spec, QTo::quantity_spec) && requires(QFrom q) { detail::sudo_cast(q); } && (treat_as_floating_point || (!treat_as_floating_point && Harmonic)); @@ -123,8 +123,7 @@ public: quantity(quantity&&) = default; template Q> - constexpr explicit(!implicitly_convertible_to(Q::quantity_spec, quantity_spec)) quantity(const Q& q) : - number_(detail::sudo_cast(q).number()) + constexpr explicit(false) quantity(const Q& q) : number_(detail::sudo_cast(q).number()) { }