Open StefanoD opened 10 months ago
Please include the following information in your issue:
Which version of units you are using Branch v3.x, Commit da6dd9176e8515323c75030d5e51ee19cf6c9afd
units
Which compiler exhibited the problem (including compiler version) GCC 11.4.0
The math function don't work for dimensionless units like percent
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()
core.h
.value()
.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.
Please include the following information in your issue:
Which version of
units
you are using Branch v3.x, Commit da6dd9176e8515323c75030d5e51ee19cf6c9afdWhich compiler exhibited the problem (including compiler version) GCC 11.4.0
The math function don't work for dimensionless units like
percent
The problem lies in
core.h
where the said functions use.value()
instead of.raw()