We can get the compile time equivalent of a member function's address by applying '&' to the function in a static context:

struct S {
    void foo() {}
}

enum pfoo = &S.foo; // ok

void main() {
// now we can use the pointer to create, for example, a delegate
    S s;
    void delegate() dg;
    dg.ptr = &s;
    dg.funcptr = pfoo;
    dg();
}

However, we can't do that to a nested function:

void main() {
    void foo() {
    }
enum pfoo = &foo; // weird kind of an enum delegate; pfoo.funcptr can't be accessed at compile time.
}

Is there a way to get a pointer to a non-static nested function?

Reply via email to