Scope storage class
Walter Bright
newshound1 at digitalmars.com
Thu Nov 27 09:39:41 PST 2008
Steven Schveighoffer wrote:
> "Walter Bright" wrote
>> Jarrett Billingsley wrote:
>>> So my suspicion is correct, then? That is:
>>>
>>> scope int delegate() b;
>>> b = { ... };
>>>
>>> Will allocate on the heap?
>> Yes. The scope for delegates takes effect as a parameter storage class,
>> not a local variable storage class. The reason is because it is the called
>> function that decides what it's going to do with the delegate.
>
> Why? It would be useful to allow local scope delegates.
>
> The compiler can just forbid passing the delegate to a function which does
> not declare its parameter as scope. I assume the compiler knows a variable
> is scope since it must prevent escape of the delegate, no? So just use that
> information. I thought that was the point of all this...
In order to make that work, the compiler would have to do full escape
analysis, which is a lot of work to implement.
More information about the Digitalmars-d-announce
mailing list