Philippe Sigaud wrote:
On Thu, Jul 22, 2010 at 00:27, Andrei Alexandrescu
<[email protected] <mailto:[email protected]>>
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
Great point. I simplified the implementation:
http://www.dsource.org/projects/phobos/changeset/1776
PS: too bad that, if bug 2581 is not squashed, your scoped won't show in
the docs :(
I'll fix that later with a version(ddoc).
Andrei