diff --git a/src/core/include/mp-units/framework/quantity.h b/src/core/include/mp-units/framework/quantity.h index 1e69e053..014e9e8e 100644 --- a/src/core/include/mp-units/framework/quantity.h +++ b/src/core/include/mp-units/framework/quantity.h @@ -88,10 +88,11 @@ template using common_quantity_for = quantity>; -template -concept SameOriginalReferenceAs = DeltaReference && Reference && (get_original_reference(T{}) == R{}); +template +concept SameOriginalReferenceAs = DeltaReference && + Reference && (get_original_reference(T) == R); -template +template concept SameValueAs = detail::SameOriginalReferenceAs && std::same_as; } // namespace detail @@ -151,14 +152,15 @@ public: ~quantity() = default; template - requires detail::SameValueAs, Rep> + requires detail::SameValueAs, Rep> constexpr quantity(Value&& v, R2) : numerical_value_is_an_implementation_detail_(std::forward(v)) { } template - requires(!detail::SameValueAs, Rep>) && - detail::QuantityConvertibleTo>, quantity> + requires(!detail::SameValueAs, Rep>) && + detail::QuantityConvertibleTo>, + quantity> constexpr quantity(Value&& v, R2) : quantity(quantity>{std::forward(v), R2{}}) {