www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - struct inside struct: Is there a way to call a function of the outside

reply berni <someone somewhere.com> writes:
 struct A
 {
     void c() {}
 
     struct B
     {
         void d()
         {
             c();
         }
     }
 }
When compiling this with rdmd I get the message: "Error: this for c needs to be type A not type B". Is there a way to call c from d?
Jul 06 2019
parent reply berni <someone somewhere.com> writes:
Now I found this: 
https://forum.dlang.org/thread/eobdqkkczquxoepsteue forum.dlang.org

Seems to be intentional, that this doesn't work. In my case I'm 
able to move d() into the outer struct...
Jul 06 2019
parent Era Scarecrow <rtcvb32 yahoo.com> writes:
On Saturday, 6 July 2019 at 12:33:00 UTC, berni wrote:
 Now I found this: 
 https://forum.dlang.org/thread/eobdqkkczquxoepsteue forum.dlang.org

 Seems to be intentional, that this doesn't work. In my case I'm 
 able to move d() into the outer struct...
You'll need a pointer to the outer struct, or run it in an function where it then passes a pointer of data that's seen in the scope i believe.
Jul 06 2019