D RAII with postblit disabled

Norm norm.rowtree at gmail.com
Thu Mar 29 04:12:38 UTC 2018


On Tuesday, 27 March 2018 at 02:43:15 UTC, Adam D. Ruppe wrote:
> On Tuesday, 27 March 2018 at 02:35:23 UTC, Norm wrote:
>> What's the best way to do this in D?
>
> I'd also add `@disable this();` and then a `static O make() { 
> return O(theAllocator.make!int(99)); }`
>
> than you construct it with that static make function.

OK, that got me over the first hurdle but I still cannot use RAII 
with struct member vars. E.g.

---
struct Resource {
   this() {allocate_something();}
   ~this() {release_something();}
}

struct S {
   Resource resource;
}

---

Is there a way to do this in D, or does it require special 
"create" functions for every struct that has a RAII-like struct 
as a member?


Thanks,
Norm


More information about the Digitalmars-d-learn mailing list