On Saturday, 2 February 2013 at 06:28:47 UTC, Era Scarecrow wrote:
On Saturday, 2 February 2013 at 06:04:01 UTC, TommiT wrote:
What do you suppose would happen if I wrote the following?
struct A
{
<snip>
static int otherFunction()
{
C cc;
return cc.myMemberFunction();
}
It would refuse to compile as a static function can't point to
an instance/parent. I'm convinced you should not be able to
return (or create an instance of) a nested struct outside of
it's level of control or ability to reference properly.
Had it not been static on the other hand...
int otherFunction()
cc has the same level as c, so the return would be equal to:
_a + _b + cc._c
... well, this function requires being called with instances of
A, B, and C, so I believe it would error on that account. The
only way to call this deeply nested thing would be with an
instance of A, which makes sense, since it operates on a variable
contained in A. It would have to look like:
A a;
int z = a.b.c.myMemberFunction();
... to work, I believe.