El dilluns, 21 de novembre de 2016, a les 18:00:18 CET, Christoph Feck va escriure: > 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.
We have a InvalidUnit, you can always default to that for stuff "you don't know". Cheers, Albert