D 2015/2016 Vision?

Adrian Matoga via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 14 06:40:15 PDT 2015


On Tuesday, 6 October 2015 at 20:43:42 UTC, bitwise wrote:
> For the THIRD time, I'll post my example:
>
> class Texture { }
> class Texture2D : Texture {
>     this() { /* load texture... */ }
>     ~this { /* free texture */ }     // OOPS, when, if ever, 
> will this be called?
> }
>
> Now, does this really seem like a realistic use case to you?
>
> using(Texture tex = new Texture2D) {
>     // ...
> }
>

It does, entirely. I usually translate it to D this way:

{
     Texture tex = new Texture2D;
     scope(exit) tex.destroy;
     // ...
}

Of course, nothing protects you from passing the reference 
outside the scope and having a dangling ref after the scope ends, 
so it's by no means safe, but the destruction is deterministic.



More information about the Digitalmars-d mailing list