Enum of functions?
Chris Williams
yoreanon-chrisw at yahoo.co.jp
Mon Nov 25 15:32:25 PST 2013
Is there any way to do something like this?
import std.stdio;
enum Foo : void function() {
WOMBAT = () {writeln("Wombat");}
}
void doStuff(Foo f) {
f();
}
int main() {
doStuff( Foo.WOMBAT );
return 0;
}
Currently, I get the errors:
hello.d(4): Error: non-constant nested delegate literal
expression __lambda1
hello.d(12): Error: delegate hello.Foo.__lambda1 is a nested
function and cannot be accessed from D main
I can fix it by declaring a function outside of Foo and setting
WOMBAT = &fname, but it seems like I should be able to create a
hidden lambda.
More information about the Digitalmars-d-learn
mailing list