I've just spent a couple of hours tracking down an error, which turned out to be that a copy assignment operator was mistyped - what should have been
myclass& myclass::operator=(const myclass& m);
was actually written as
myclass& myclass::operator=(const &myclass m);
My question is - why did the second version compile at all? Does it mean anything?