On Monday, 19 June 2017 at 09:10:16 UTC, Dsby wrote:
On Saturday, 17 June 2017 at 17:15:50 UTC, Adam D. Ruppe wrote:
On Saturday, 17 June 2017 at 14:19:34 UTC, ANtlord wrote:
[...]
Where the variable is defined that is referenced in the
closure.
So:
[...]
if the uses parma is 'scope':
void uses(scope void delegate() dg);
will it be not alloc memory?
I test it , if use scope it will not alloc memony.
import std.stdio;
void call(void delegate() fun)
{
fun();
}
void call2(scope void delegate() fun)
{
fun();
}
void main()
{
int a = 10;
// call((){writeln(a);});
call2((){writeln(a);});
}
dmd -vgc ./t.d
it will not print anything.
if use call:
void main()
{
int a = 10;
call((){writeln(a);});
// call2((){writeln(a);});
}
dmd -vgc ./t.d
182ms 2017年06月19日 星期一 17时16分47秒
./t.d(13): vgc: using closure causes GC allocation