Feature Request: Support delegate literal context skipping

Tom S h3r3tic at remove.mat.uni.torun.pl
Fri Oct 12 04:36:53 PDT 2007


{	downs wrote:
	> In the following situation
	>
	> class Foo {
	>   int e;
	>   void delegate() bar() {
	>     return { e++; };
	>   }
	> }
	>
	> the delegate literal will not work. This is because its context is bar,
	> and bar has ended. But the literal doesn't *need* anything from bar.
	>
	> Because of this, I propose in situations where a delegate literal
	> doesn't access the immediate surrounding stack frame, its context be the
	> first frame (or class) that it does access.
	> So in this example, { e++; } 's .ptr would point at the respective
	> instance of Foo, allowing this to work.
	>
	> Disadvantages: None
	> Advantages: potentially highly helpful with user interface code, where
	> such callbacks are commonplace.
}.votes++;

-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode



More information about the Digitalmars-d mailing list