diff --git a/include/xo/unit/quantity.hpp b/include/xo/unit/quantity.hpp index 2eff0adf..87f7b4ac 100644 --- a/include/xo/unit/quantity.hpp +++ b/include/xo/unit/quantity.hpp @@ -37,7 +37,9 @@ namespace xo { constexpr const repr_type & scale() const { return scale_; } constexpr const unit_type & unit() const { return s_unit; } - // is_dimensionless + constexpr bool is_dimensionless() const { + return s_unit.is_dimensionless(); + } // unit_qty // zero_qty @@ -152,6 +154,12 @@ namespace xo { return this->template rescale().template with_repr(); } + constexpr operator Repr() const + requires (NaturalUnit.is_dimensionless()) + { + return scale_; + } + public: /* need public members so that a quantity instance can be a non-type template parameter (is a structural type) */ static constexpr natural_unit s_unit = NaturalUnit;