Initializing global delegate variable - bug or on purpose?
data pulverizer via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Mar 25 16:40:37 PDT 2016
On Friday, 25 March 2016 at 20:54:28 UTC, Atila Neves wrote:
> int delegate(int) dg = (i) => i * 2;
>
> Error: non-constant nested delegate literal expression __lambda3
>
>
> int delegate(int) dg;
>
> static this() {
> dg = i => i * 2; // ok
> }
>
>
> Am I doing anything wrong?
>
> Atila
Hmm, looks like your first delegate is a function type and the
second is a function instance. So the first version written like
this ...
import std.stdio;
alias dg = int delegate(int);
dg make_dg(){
return i => i*2;
}
void main(){
auto my_dg = make_dg();
writeln(my_dg(3));
}
will work.
More information about the Digitalmars-d-learn
mailing list