diff --git a/src/core/include/mp-units/framework/quantity.h b/src/core/include/mp-units/framework/quantity.h index 936c227e..279e81a7 100644 --- a/src/core/include/mp-units/framework/quantity.h +++ b/src/core/include/mp-units/framework/quantity.h @@ -60,8 +60,11 @@ template concept IsFloatingPoint = treat_as_floating_point; template -concept ValuePreservingTo = - IsFloatingPoint || (!IsFloatingPoint && (integral_conversion_factor(FromUnit, ToUnit))); +concept ValuePreservingTo = requires(FromRep&& from, ToRep to) { + { + to = std::forward(from) + } -> std::same_as; +} && (IsFloatingPoint || (!IsFloatingPoint && (integral_conversion_factor(FromUnit, ToUnit)))); template concept QuantityConvertibleTo =