Рассмотрим этот код:
struct foo { int a; }; foo q() { foo f; f.a =4; return f;} int main() { foo i; i.a = 5; q() = i; }
Ни один компилятор не жалуется на это, даже Clang. Почему q () = ... строка верна?
q () = ...