DIP69 - Implement scope for escape proof references
Walter Bright via Digitalmars-d
digitalmars-d at puremagic.com
Fri Dec 5 12:55:53 PST 2014
On 12/5/2014 7:27 AM, Steven Schveighoffer wrote:
> Can someone who knows what this new feature is supposed to do give some Ali
> Çehreli-like description on the feature? Basically, let's strip out the *proof*
> in the DIP (the how it works and why we have it), and focus on how it is to be
> used.
>
> I still am having a hard time wrapping my head around the benefits and when to
> use scope, scope ref, why I would use it. I'm worried that we are adding all
> this complication and it will confuse the shit out of users, to the point where
> they won't use it.
The tl;dr version is when a declaration is tagged with 'scope', the contents of
that variable will not escape the lifetime of that declaration.
It means that this code will be safe:
void foo(scope int* p);
p = malloc(n);
foo(p);
free(p);
The rest is all the nuts and bolts of making that work.
More information about the Digitalmars-d
mailing list