diff --git a/src/core/include/mp-units/framework/quantity_point.h b/src/core/include/mp-units/framework/quantity_point.h index aa4763d6..087fc7ab 100644 --- a/src/core/include/mp-units/framework/quantity_point.h +++ b/src/core/include/mp-units/framework/quantity_point.h @@ -191,13 +191,13 @@ public: [[nodiscard]] static constexpr quantity_point min() noexcept requires requires { quantity_type::min(); } { - return {quantity_type::min(), PO}; + return {quantity_type::min(), point_origin}; } [[nodiscard]] static constexpr quantity_point max() noexcept requires requires { quantity_type::max(); } { - return {quantity_type::max(), PO}; + return {quantity_type::max(), point_origin}; } // construction, assignment, destruction @@ -264,10 +264,10 @@ public: quantity_point& operator=(quantity_point&&) = default; template NewPO> - [[nodiscard]] constexpr MP_UNITS_CONSTRAINED_AUTO_WORKAROUND(QuantityPointOf) auto point_for( + [[nodiscard]] constexpr QuantityPointOf<(NewPO{})> auto point_for( NewPO new_origin) const { - if constexpr (is_same_v) + if constexpr (is_same_v) return *this; else return ::mp_units::quantity_point{*this - new_origin, new_origin}; @@ -329,7 +329,7 @@ public: requires detail::QuantityConvertibleTo> [[nodiscard]] constexpr QuantityPointOf auto in(ToU) const { - return ::mp_units::quantity_point{quantity_ref_from(PO).in(ToU{}), PO}; + return ::mp_units::quantity_point{quantity_ref_from(point_origin).in(ToU{}), point_origin}; } template ToRep> @@ -350,7 +350,7 @@ public: requires requires(quantity_type q) { value_cast(q); } [[nodiscard]] constexpr QuantityPointOf auto force_in(ToU) const { - return ::mp_units::quantity_point{quantity_ref_from(PO).force_in(ToU{}), PO}; + return ::mp_units::quantity_point{quantity_ref_from(point_origin).force_in(ToU{}), PO}; } template ToRep> @@ -364,7 +364,7 @@ public: requires requires(quantity_type q) { value_cast(q); } [[nodiscard]] constexpr QuantityPointOf auto force_in(ToU) const { - return ::mp_units::quantity_point{quantity_ref_from(PO).template force_in(ToU{}), PO}; + return ::mp_units::quantity_point{quantity_ref_from(PO).template force_in(ToU{}), point_origin}; } // conversion operators