units
units copied to clipboard
Math functions not compatible with percent
Please include the following information in your issue:
-
Which version of
units
you are using Branch v3.x, Commit da6dd9176e8515323c75030d5e51ee19cf6c9afd -
Which compiler exhibited the problem (including compiler version) GCC 11.4.0
The math function don't work for dimensionless units like percent
using units::concentration::percent;
percent<double> pct1 = 100_pct;
percent<double> pct2 = 70_pct;
percent<double> delta = fabs(pct1 - pct2); // Results into percent<double>(0.3)
percent<double> maxValue = fmax(pct1, pct2); // Results into percent<double>(1.0)
percent<double> minValue = fmin(pct1, pct2); // Results into percent<double>(0.7)
// Following tests are failing:
EXPECT_EQ(delta, 30_pct);
EXPECT_EQ(maxValue, pct1);
EXPECT_EQ(minValue, pct2);
The problem lies in core.h
where the said functions use .value()
instead of .raw()
Seems very highly related to #276. Although I wouldn't go so far as to call this one a duplicate, I think some of the discussion there can be helpful.
Same for this comment on #275.