I'm reading Scott Meyers' book and come across the following example:
class Rational { ... };
const Rational operator*(const Rational& lhs, const Rational& rhs);
Rational a, b, c;
...
(a * b) = c; // invoke operator= on the
// result of a*b!
He said that it was really wierd thing, but I didn't see why. What's wrong with the invokation of the operator= on the result of a*b?