On Thursday, 17 December 2015 at 04:59:20 UTC, Jakob Ovrum wrote:
On Thursday, 17 December 2015 at 04:05:30 UTC, Jeremy DeHaan wrote:
http://dpaste.com/3FH3W13

Also, I would be wary of lazy initialization. We have bad experiences with it for AAs and standard containers. A typical example would be:

void foo(Wrapper w)
{
    ...
    w.doTheThing();
    ...
}

void main()
{
    Wrapper w;
    foo();
    w.inspect(); // `w` is still a null reference here
}


Thanks for the heads up. I'll think more on this, but you made a good point here.

And I guess what I was talking about before is that using a factory method feels klunky to me. If the things I am wrapping had been written in D they could use default initialization, so it feels wrong to do otherwise. I also just don't really like factory methods. They feel like a workaround that the end user has to deal with. But that's just me.

Reply via email to