digitalmars.D.learn - what is full closures
- bobef <bobef abv-nospam.bg> Jan 03 2008
- Sean Kelly <sean f4.ca> Jan 03 2008
- bobef <bobef abv-nospam.bg> Jan 03 2008
Sounds like something useful but what is full closure and what is the difference from the current (D1 - empty? :) ) closures?
Jan 03 2008
bobef wrote:Sounds like something useful but what is full closure and what is the difference from the current (D1 - empty? :) ) closures?
A full closure is where all data relevant to a delegate is retained until the delegate is destroyed. ie. void delegate() fn( int i ) { return delegate void() { writefln( "i is ", i ); }; } fn( 1 )(); In D 1.0, this code would crash because the stack location for i no longer exists when the delegate is called. In D 2.0, memory for i is allocated on the heap and this code works. Sean
Jan 03 2008








bobef <bobef abv-nospam.bg>