DIP1000: Scoped Pointers

Walter Bright via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Aug 13 12:51:07 PDT 2016


On 8/13/2016 5:02 AM, Joseph Rushton Wakeling wrote:
> On Saturday, 13 August 2016 at 11:09:05 UTC, Walter Bright wrote:
>> Taking the address of a ref variable has not been allowed in @safe code for a
>> long time.
>
> Which is understandable given things as they are, but which could probably be
> relaxed given good scope/lifetime analysis by the compiler...?

It's relaxed in @system code.


>>> The above code is unsafe only if the lifetime of `data` outlives the lifetime of
>>> `input`.  Surely the new scope rules should be able to distinguish the cases?
>>> If that's already envisioned, how would that work?
>>
>> That depends on how the instance of MyWrapperStruct is allocated. How did you
>> intend to allocate it?
>
> As a normal stack variable. Is that problematic?

Shouldn't be.

> And if not, what would be problematic cases?

Allocating it on the heap.



More information about the Digitalmars-d-announce mailing list