Steven Schveighoffer wrote:
On Wed, 29 Jul 2009 14:39:07 -0400, Ary Borenszweig
<[email protected]> wrote:
a.b.c = d;
If b is anything that has a struct type, and c is anything else, the
statement must report an error.
struct S
{
int *x;
void c(int n) {*x = n;}
}
struct S2
{
int n;
S b() { return S(&n);}
}
void main()
{
S2 a;
a.b.c = 5;
}
Why should this not be allowed?
Simpler yet:
class C { int x; }
struct B { C c; }
struct A { C x; B b() { return B(x); }
void main()
{
A a;
a.x = new C;
a.b.c = 42; // fine, modifies the C object
}
Andrei