Let foo be a struct or class with a copy assignment operator:
struct foo {
foo &operator=(const foo &); // or with some other return type?
};
Is there ever a sensible reason to return anything other than *this from the operator=()? Using it for something unrelated to assignment doesn't qualify as sensible.