delegate issue

captaindet via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jun 1 23:56:18 PDT 2014


hi,

i stumbled upon something weird - it looks like a bug to me but maybe it is a "feature" that is unclear to me.

so i know i can declare function and delegate pointers at module level.
for function pointers, i can initialize with a lambda.
BUT for delegates i get an error - see below

i found out that using module static this(){...} provides a workaround, but why is this necessary?

also, if there is a good reason after all then the error message should make more sense.

/det

ps: i know there is a shorthand syntax for this.

----
module demo;

int function(int) fn = function int(int){ return 42; };
// ok

int delegate(int) dg = delegate int(int){ return 666; };
// demo.d(6): Error: non-constant nested delegate literal expression __dgliteral6

void main(){}


More information about the Digitalmars-d-learn mailing list