digitalmars.D - Re: Can we fix reverse operator overloading (opSub_r et. al.)?
- ponce <aliloko gmail.com> Jul 12 2009
Curiously, in the DMD front-end, that's almost what happens with array operations. x[] = a*y[] + c*z[]; gets translated into: __somemangledarrayfuncname(x, y, z, a, c); and creates: __somemangledarrayfuncname(T[] p1, T[] p2, T[] p3, T c1, T c2) { for(int p=0; p < p1.length; ++p) { p1[p] = c1*p2[p] + c2*p3[p]; } }
Wow, I didn't know that. I think such a behaviour is not advertised enough. It's valuable since making a single loop for such things optimizes cache usage and speed up things a lot. In C++ you would have to use a templated library like Eigen to do something, and then your code would become unreadable.
Jul 12 2009