I went ahead and wrote a little test program: ---------
import std.stdio;
alias int delegate() Dg;
Dg[] dgList;
Dg foo()
{
auto f = delegate int()
{
return 0;
};
return f;
}
Dg bar()
{
int n = 0;
auto f = delegate int()
{
return n++;
};
return f;
}
void main()
{
auto d0 = foo();
writeln(d0.ptr);
dgList ~= d0;
auto d1 = bar();
writeln(d1.ptr);
dgList ~= d1;
}
---------
This outputs:
null
7F37305DDFF0
So it seems DMD optimizes this well, as I had hoped.
