From cb7bd4d1f216d8176a200ac99863725bc9f08fa2 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sat, 4 May 2024 11:37:24 -0400 Subject: [PATCH] xo-unit: + quantity methods .is_dimensionless(), arith conversion --- include/xo/unit/quantity.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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;