forked from mpusz/mp-units
feat: ValuePreservingTo
extended with the explicit convertibility requirement
This commit is contained in:
@@ -60,8 +60,11 @@ template<typename T>
|
||||
concept IsFloatingPoint = treat_as_floating_point<T>;
|
||||
|
||||
template<typename FromRep, typename ToRep, auto FromUnit = one, auto ToUnit = one>
|
||||
concept ValuePreservingTo =
|
||||
IsFloatingPoint<ToRep> || (!IsFloatingPoint<FromRep> && (integral_conversion_factor(FromUnit, ToUnit)));
|
||||
concept ValuePreservingTo = requires(FromRep&& from, ToRep to) {
|
||||
{
|
||||
to = std::forward<FromRep>(from)
|
||||
} -> std::same_as<ToRep&>;
|
||||
} && (IsFloatingPoint<ToRep> || (!IsFloatingPoint<FromRep> && (integral_conversion_factor(FromUnit, ToUnit))));
|
||||
|
||||
template<typename QFrom, typename QTo>
|
||||
concept QuantityConvertibleTo =
|
||||
|
Reference in New Issue
Block a user