import std.stdio;
struct S
{
    int go()
    {
        U u;
        u.s = this;
        return u.a + u.b;
    }
}

union U
{
    S* s;
    struct
    {
         short a;
         short b;
    }
}

void main()
{
     U u;
     u.a= 54;
     u.b = 42;

     int delegate() dg = &u.s.go;


     writef("%s\n", dg()); 
}


