Scope of lambdas and closures

Rolv Seehuus rolv.seehuus at gmail.com
Sun Jul 17 04:14:19 PDT 2011


Hi all,

First post - I'm learning D, 10yrs exp. with C++.

While trying to generate a static table of functions using lambdas compile time using mixins, I ran in to
this little (for me) conundrum.

Given that we have this function available:
static void foo(){
    writefln("Hohum");
}

This compiles:
void function()[] funcext = [&foo];

Whereas this does not:
void function()[] funcext2 = [function(){foo();}];

Why? What are the technicalities that prevent me from setting up a lambda during compile-time? It
seems to me that the compiler should be able to figure this out.

Any insights appreciated. :)

Cheers,
-r-


More information about the Digitalmars-d-learn mailing list