On Thu, Jul 22, 2010 at 00:27, Andrei Alexandrescu <SeeWebsiteForEmail@erdani.org> wrote:
The double destructor hits a bug in the compiler implementation. Anyway, here's the committed code:

http://www.dsource.org/projects/phobos/changeset/1774

It uses a new idiom that is enabled by auto returns - defines a struct inside the function and returns it. That's a veritable existential type! (http://stackoverflow.com/questions/292274/what-is-an-existential-type) I expect more of that idiom in the upcoming commits.

Hmm, so the struct Scoped is implicitly parametrized by T and Args... Cool.

Why do you put a second layer of (Args...) in Scoped constructor? Why not just

this(Args args) if (etc) {...}

And, in your case, if you used Args inside Scoped (which you don't do), would that be the ctor's Args which'd be used?


Philippe

PS: too bad that, if bug 2581 is not squashed, your scoped won't show in the docs :(