digitalmars.D.learn - Scope of lambdas and closures
- Rolv Seehuus <rolv.seehuus gmail.com> Jul 17 2011
- "Daniel Murphy" <yebblies nospamgmail.com> Jul 17 2011
- Rolv Seehuus <rolv.seehuus gmail.com> Jul 19 2011
- "Daniel Murphy" <yebblies nospamgmail.com> Jul 19 2011
- Rolv Seehuus <rolv.seehuus gmail.com> Jul 30 2011
- Rolv Seehuus <rolv.seehuus gmail.com> Jul 30 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-
Jul 17 2011
That would be http://d.puremagic.com/issues/show_bug.cgi?id=2634 "Rolv Seehuus" <rolv.seehuus gmail.com> wrote in message news:ivug6b$o7o$1 digitalmars.com...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-
Jul 17 2011
== Quote from Daniel Murphy (yebblies nospamgmail.com)'s articleThat would be http://d.puremagic.com/issues/show_bug.cgi?id=2634
Thanks, Is there a related/same reason why this don't compile? unittest { static void stuff(){} static void function()[string] functions = [ "stuff":&stuff ]; } Cheers, -r-
Jul 19 2011
"Rolv Seehuus" <rolv.seehuus gmail.com> wrote in message news:j04qff$i4s$1 digitalmars.com...Is there a related/same reason why this don't compile? unittest { static void stuff(){} static void function()[string] functions = [ "stuff":&stuff ]; }
That compiles for me.
Jul 19 2011
== Quote from Daniel Murphy (yebblies nospamgmail.com)'s article"Rolv Seehuus" <rolv.seehuus gmail.com> wrote in message news:j04qff$i4s$1 digitalmars.com...Is there a related/same reason why this don't compile? unittest { static void stuff(){} static void function()[string] functions = [ "stuff":&stuff ]; }
Ok - Compiler version/os? I'm on MacOS, compiler outputs the following: DMD32 D Compiler v2.054 -r-
Jul 30 2011
== Quote from Rolv Seehuus (rolv.seehuus gmail.com)'s article== Quote from Daniel Murphy (yebblies nospamgmail.com)'s article"Rolv Seehuus" <rolv.seehuus gmail.com> wrote in message news:j04qff$i4s$1 digitalmars.com...Is there a related/same reason why this don't compile? unittest { static void stuff(){} static void function()[string] functions = [ "stuff":&stuff ]; }
Doh, never mind. Sorry for wasting your time. Cheers, -r-
Jul 30 2011








Rolv Seehuus <rolv.seehuus gmail.com>