expression templates
dsimcha
dsimcha at yahoo.com
Tue Mar 29 12:56:10 PDT 2011
== Quote from bearophile (bearophileHUGS at lycos.com)'s article
> This is not terrible, because for those two operations I define only the method
with English name, but this is a small limit of opCmp. In expression templates you
are able to use the same solution.
> Is this usage for the set API operator overloading abuse? I am not sure. I think
it's acceptablre.
Reasonable people can disagree on this, but I say definitely yes. I don't regret
that operator overloading exists in D since I don't believe in throwing the baby
out with the bath water when it comes to language design. That said, I believe
that unless an operator overload does something conceptually identical to what it
does for builtin types, it's an abuse of operator overloading. For example, using
'+' for string concatenation, '<<' to write to streams, '+' to append to a stack,
or comparison operators for dealing with sets is a severe abuse.
I'm even hesitant to use '*' for matrix multiplication since I fail to see how
matrix multiplication is conceptually related to scalar multiplication. I wish
these were treated as unrelated operations in standard mathematical notation, for
example using '.' for matrix multiplication. However, if I ever get around to
finishing my SciD enhancements, I will grudgingly defer to de facto standards and
use it.
More information about the Digitalmars-d
mailing list