[D2] How to not full closure?
    BCS 
    ao at pathlink.com
       
    Mon Jul 14 17:03:19 PDT 2008
    
    
  
Reply to Frank,
> Mike schrieb:
> 
>> On Mon, 14 Jul 2008 04:39:58 +0200, davidl <davidl at 126.com> wrote:
>> 
>>> it's better to introduce a new keyword, closure.
>>> 
>>> there
>>> 
>>> on heap:
>>> closure t = {
>>> // my closure
>>> return 3;
>>> }
>>> on stack:
>>> delegate t = {
>>> retirm 3;
>>> }
>> Wouldn't it suffice to overload the new keyword?
>> 
>> heap:
>> 
>> delegate t = new { return 3; }
>> 
>> stack:
>> 
>> delegate t = { return 3; }
>> 
>> That way it could work with delegate literals too:
>> 
>> int b = 3;
>> foo(new { return b; });
>> -Mike
>> 
> I think the problem here is, new says that it will force a heap
> allocation for its call. But the heap allocation shall not happen per
> delegate, it shall only happen once for the surrounding stack frame if
> it contains at least one heap allocated delegate.
> hm, is it understandable what i mean by this ? :)
Yes, I understand it. (FWIW)
    
    
More information about the Digitalmars-d
mailing list