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.

Reply via email to