Destructor order
via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Oct 23 05:15:13 PDT 2014
On Wednesday, 22 October 2014 at 23:11:14 UTC, Ali Çehreli wrote:
> On 10/22/2014 04:05 PM, eles wrote:
>
> > And the compiler swallows this without even barking?
>
> The compiler must obey an alias this inside Scoped.
>
> I've thinking for a way do disallow this but haven't been able
> to spend much time on it today.
>
> > Why Scoped!A is convertible to A, then?
>
> So that Scoped!A can conveniently be used as an A.
>
> > And what the resulting A-typed variable contains if the object
> > gets destroyed.
>
> Note that the A is not the object but the class reference to
> it. The 'alias this' hands out a reference to the object that
> is on the stack. The reference is valid when that occurs. Then,
> the compiler destroys the temporary Scoped!A object as it
> should, leaving behind a dangling reference.
>
> There must be a way to disallow this.
Yet another use case for borrowing.
More information about the Digitalmars-d-learn
mailing list