[KUnitConversion] Question about overloading operators
Albert Astals Cid
aacid at kde.org
Mon Nov 21 21:59:30 UTC 2016
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
More information about the Kde-frameworks-devel
mailing list