Quote Originally Posted by Sir Galahad
Assigning a print object to a value and having that, well, print is not a very surprising result.
Not really: with the original semantics of operator= it looks like you're trying to replace the output stream with the object. Surely that is wrong.

The argument that these constitute abuse of operator overloading is that it would be semantically better to use named functions instead. Unfortunately, that makes it even more verbose if we want to stick to the chaining.