diff --git a/src/core/include/units/quantity.h b/src/core/include/units/quantity.h index cddcb05c..8695a7af 100644 --- a/src/core/include/units/quantity.h +++ b/src/core/include/units/quantity.h @@ -147,10 +147,18 @@ public: quantity& operator=(quantity&&) = default; // data access +#ifdef __cpp_explicit_this_parameter + template + [[nodiscard]] constexpr auto&& number(this Self&& self) noexcept + { + return std::forward(self).number_; + } +#else [[nodiscard]] constexpr rep& number() & noexcept { return number_; } [[nodiscard]] constexpr const rep& number() const& noexcept { return number_; } [[nodiscard]] constexpr rep&& number() && noexcept { return std::move(number_); } [[nodiscard]] constexpr const rep&& number() const&& noexcept { return std::move(number_); } +#endif template requires quantity_convertible_to_{}, Rep>>