struct A {};
A f() { return A(); }
int g() { return 42; }
int main()
{
A& r = f(); // OKint& rr = g(); // Error
}
Почему Visual C++ 19.00.23506 компилирует первую строчку и не компилирует вторую?
GCC выдает в обоих случаях error: invalid initialization of non-const reference of type 'A&' from an rvalue of type 'A'