I never liked call by reference. When I was trying to understand a chunk of code, it was a great mental simplification to know that whatever a called routine did, it couldn't have an effect on the code I was trying to understand except through a returned value and (ghastly) global variables. Operator overloading is far worse. Now I can't even be sure code I'm looking at is doing what I thought it did.

On Wed, May 13, 2020 at 7:38 PM Dave Horsfall <dave@horsfall.org> wrote:
On Tue, 12 May 2020, Paul Winalski wrote:

> Absolutely.  The projects that I ran effectively used C++ as a
> stronger-typed version of C.  A small subset of C++ features were
> allowed, but among the prohibited features were:

[...]

> o operator overloading

[...]

I never could figure out why Stroustrup implemented that "feature"; let's
see, this operator usually means this, except when you use it in that
situation in which case it means something else.  Now, try debugging that.

I had to learn C++ for a project at $WORK years ago (the client demanded
it), and boy was I glad when I left...

-- Dave