I'm interested to know whether this is strictly legal and if so why. Could it be a bug in GCC? Surely not?
Code:#include <iostream>
using namespace std;
class A;
void Foo(A& a);
struct A
{
int x;
};
int main()
{
A a;
a.x = 3;
Foo(a);
return 0;
}
void Foo(A& a)
{
cout << a.x << endl;
}