Dynamic closure vs static closure

KennyTM~ kennytm at gmail.com
Sat Oct 25 02:30:50 PDT 2008


Frank Benoit wrote:
> It is great to hear that this issue is getting solved.
> How will be the now syntax?
> 
> I wonder if the distinction between dynamic/static closure shall be done
> on the calling site, or the called site.
> 
> void foo( void delegate() dg ){
> }
> // -or-
> void foo2( scope void delegate() dg ){
> }
> 
> void bar(){
>   int i;
>   foo({
>     i++;
>   });
>   // -or-
>   foo( scope {
>     i++;
>   });
> }
> 
> Because I think, the foo method/function signature has to define if the
> delegate is escaping or not. The caller might not know it.
> 
> If the signature defines this, the compiler can check that and give more
> safety.

It should done on the calling site (the point where delegates are 
created). Why the called function need to know if the delegate is a 
closure or not? What they can do is just call the delegate.



More information about the Digitalmars-d mailing list