DIP1000: Scoped Pointers
Mike via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Wed Aug 17 00:14:20 PDT 2016
On Wednesday, 17 August 2016 at 07:04:26 UTC, Mike wrote:
>
> Or perhaps DIP1000 changes the current behavior of the `scope`
> storage class.
>
> My understanding is that the `scope` storage class currently
> allocates a class on the stack (though its usage for this
> purpose is deprecated in favor of std.typecons.scoped). If
> DIP1000 is implemented, it will change that behavior, so the
> allocation will instead be on the GC heap, but the compiler
> will do some flow-control analysis to prevent escaping
> references. Is that right?
>
I may have found my answer in the DIP, but there is some
ambiguity:
"Currently, scope is ignored except that a new class use to
initialize a scope variable allocates the class instance on the
stack. Fortunately, this can work with this new proposal, with an
optimization that recognizes that if a new class is unique, and
assigned to a scope variable, then that instance can be placed on
the stack."
"can be placed on the stack", or "will be placed on the stack"?
And only "if the new class is unique"? I'm assuming unique mean
a new instance with a reference count (for lack of a better word)
no greater than 1.
Mike
More information about the Digitalmars-d-announce
mailing list