Question about wrapping raw C pointers from D

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu May 29 23:27:25 PDT 2014


On 05/29/2014 09:38 PM, Rusty D. Shackleford wrote:

 > Hi, in C++ I can use smart pointers to wrap raw pointers with custom
 > deleter to automatically manage C resources. Is there anything like this
 > in D?

1) Structs provide RAII:

struct S
{
     // ...

     ~this() {
         // cleanup
     }
}

2) catch and finally clauses can be used

3) scope(failure), scope(exit), and scope(success):

{
     auto r = allocateSomeResource();
     scope(exit) deallocateSomeResource(r);

     // ...
}

Ali



More information about the Digitalmars-d-learn mailing list