Delegates with stackpointers
Alex
sascha.orlov at gmail.com
Sat Sep 29 07:22:52 UTC 2018
On Saturday, 29 September 2018 at 06:01:50 UTC, Ritchie wrote:
> How does a delegate with a stackpointer work? e.g. in this
> example:
>
> https://run.dlang.io/is/XviMSl
>
> Does the second call to foo not overwrite the stack of the
> first call and thereby the data pointed to by bar1? How is that
> data preserved?
Why should a call to foo overwrite something? Aren't these two
foos equivalent from this point of view?
´´´
DelegateT foo1() {
int a = 0;
void bar() {
a++;
writeln(a);
}
return &bar;
}
auto foo2()
{
struct S
{
int a;
void opCall()
{
a++;
writeln(a);
}
}
return S.init;
}
´´´
More information about the Digitalmars-d-learn
mailing list