[KUnitConversion] Question about overloading operators

Christoph Feck cfeck at kde.org
Mon Nov 21 17:00:18 UTC 2016


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.



More information about the Kde-frameworks-devel mailing list