Don wrote:
The number of operators that you can overload is very small and each of them is attached to very specific semantics that makes little sense outside the realm of scalars and of a few other specialized mathematical concepts (e.g. matrices).

Exactly right.

Bingo! That's what operator overloading is for. **Don't overload arithmetic operators unless you are doing arithmetic.** I think the main problem with operator overloading in C++ is that that point wasn't explained well at all.

Even worse, by standardizing the << and >> for streams, C++ implicitly endorsed non-arithmetic usages.

The D spec could probably do a better job of it, but at least the ~ operator removes the temptation for people to use + to mean concatenation.

Yeah, does + mean vector addition or concatenation? There's no solution to that problem if you don't have ~.

Reply via email to