diff --git a/src/core/include/mp-units/framework/value_cast.h b/src/core/include/mp-units/framework/value_cast.h index eaedbd17..96b86dbc 100644 --- a/src/core/include/mp-units/framework/value_cast.h +++ b/src/core/include/mp-units/framework/value_cast.h @@ -107,7 +107,7 @@ template [[nodiscard]] constexpr QuantityPoint auto value_cast(QP&& qp) { return quantity_point{value_cast(std::forward(qp).quantity_from_origin_is_an_implementation_detail_), - qp.point_origin}; + std::remove_reference_t::point_origin}; } /** @@ -124,10 +124,10 @@ template requires QuantityPoint> && RepresentationOf::quantity_spec.character> && std::constructible_from::rep> -[[nodiscard]] constexpr quantity_point::reference, QP::point_origin, ToRep> value_cast( +[[nodiscard]] constexpr quantity_point::reference, std::remove_reference_t::point_origin, ToRep> value_cast( QP&& qp) { - return {value_cast(std::forward(qp).quantity_from_origin_is_an_implementation_detail_), qp.point_origin}; + return {value_cast(std::forward(qp).quantity_from_origin_is_an_implementation_detail_), std::remove_reference_t::point_origin}; } /** @@ -147,7 +147,7 @@ template [[nodiscard]] constexpr QuantityPoint auto value_cast(QP&& qp) { return quantity_point{value_cast(std::forward(qp).quantity_from_origin_is_an_implementation_detail_), - qp.point_origin}; + std::remove_reference_t::point_origin}; } } // namespace mp_units diff --git a/test/static/quantity_point_test.cpp b/test/static/quantity_point_test.cpp index 8de77236..acc53416 100644 --- a/test/static/quantity_point_test.cpp +++ b/test/static/quantity_point_test.cpp @@ -1689,7 +1689,7 @@ namespace lvalue_tests { constexpr quantity_point lvalue_qp{2 * km}; static_assert(value_cast(lvalue_qp).quantity_from_zero().numerical_value_in(m) == 2000); static_assert(value_cast(lvalue_qp).quantity_from_zero().numerical_value_in(km) == 2.f); -static_assert(value_cast(lvalue_qp).quantity_from_zero().numerical_value_in(m) == 2000.f); +static_assert(value_cast(lvalue_qp).quantity_from_zero().numerical_value_in(m) == 2000.f); } // namespace lvalue_tests } // namespace