>> How this relates to >> video game programming is beyond me. > > A typical thing i used to see when modding Half-Life is the Vector > class which allows you to do vector math as though you were dealing > with simple types. > > vector.x *= 5; vector.y *= 5; vector.z *= 5; becomes vector *= 5; > > You can also add vectors together and so on. > > It's certainly *not* something that is ground breaking and that would > bring massive improvements to the game development community. That > said, in the + vs method call case, consider vector1.add(vector2) - > does it add the vectors together and store in vector1, or does it > return a new vector. For this kind of thing, + and += have clearer and > more established intentions, i think.
We deal with these kinds of issues with function definitions all the time already, though. What are the arguments? What is the return value? What are the side effects? There are also unclear semantics with the + and += operators that don't exist with functions. For example, if I have: vector1 *= 5, does that mean vector1 is repeated 5 times in order, each value of vector1 is repeated 5 times in order, or each value of vector1 is multiplied by 5? (At which point you have to look up the overloads for the type(s) contained in the vector.) Is *= optimized to modify vector1 in place, or does it create a temp vector and then change vector1's reference? -- http://homes.eff.org/~barlow/EconomyOfIdeas.html http://www.dreamsongs.com/MobSoftware.html http://www.gnu.org/philosophy/shouldbefree.html _______________________________________________ Vala-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/vala-list
