[Dune] Vec --> FieldVector
Oliver Sander
sander at math.fu-berlin.de
Mon Oct 18 11:44:54 CEST 2004
>> 5) In FieldVector gibt es gleichzeitig
>> operator=(const K& p)
>> und
>> operator K ()
>> Das ist hochgefährlich, denn man kann damit
>> FieldVector<Foo, 3> a, b, c;
>> a = b - c;
>> schreiben, und der Compiler schluckt es. Beim Ausführen
>> wird dann aber NUR DIE ERSTE KOMPONENTE subtrahiert!!!
>> Mysteriöse Fehler sind vorprogrammiert. Ich habe
>> deswegen noch operator- und operator+ dazugebaut.
> Die Operatoren operator+ etc wollte ich eigentlich nicht haben. Ich würde
> eher den operator K weglassen. Das war nur ein Testballon um zu erreichen,
> dass man im skalaren Fall nicht immer x[0] schreiben muss. Das habe ich jetzt
> aber anders gelöst.
>
Um mal eine uralte Diskussion wieder anzufangen: Ich bin der Meinung, daß
operator+ und operator- ruhig drinbleiben sollten. Denn manchmal kommt
man um eine temporäre Variable sowieso nicht herum (z.B. wenn man die
Differenz zwischen zwei const FieldVector& ausrechnen will), und dann ist es
schon netter, wenn man a = b - c; schreiben kann. Und wem die aller-
höchste Höchstgeschwindigkeit so wichtig ist, der sollte auch so gut
informiert sein, um zu wissen, daß operator- langsam ist, und man nach
Möglichkeit was anderes nehmen sollte.
Grüße,
Oliver
More information about the Dune
mailing list