On 21.11.2016 08:27, Ander Pijoan wrote:
Value operator +(const Value &other) { Q_ASSERT( unit() == other.unit() ); return Value( number() + other.number() , unit() ); }
So when adding "3 m" and "40 cm" you want to have an assert (that isn't compiled into code unless you are in debug builds)?
Also, for multiplication, you would need to add all relationships between units, so that "40 mph" * "30 min" would result in "20 miles".
This is especially problematic for temporary units, e.g. "40 kg" * "20 m/s" * "30 Hz" should have a "Newton" unit result, but just multiplying mass and speed has no unit assigned in KUnitConversion.