[phobos] phobos commit, revision 1737
Shin Fujishiro
rsinfu at gmail.com
Thu Jul 8 07:28:45 PDT 2010
Andrei Alexandrescu <andrei at erdani.com> wrote:
> Hi Shin,
>
>
> This is solid work! There's an opportunity here - it overlaps a LOT with
> std.variant.Algebraic.
>
> Essentially it would be best if you integrated opDispatch,
> _onActiveDuck, and friends inside Algebraic. Then Algebraic would become
> meta-duck - it still supports any combination of types, but you can call
> any method they share against the Algebraic.
>
> What do you think?
>
>
> Andrei
I too think that these features should be in Algebraic.
Actually, I created Any because Algebraic did not support dispatching
and copy constructing. I did not touch Algebraic because it was
rather difficult to implement opDispatch to the backing VariantN.
Then, may I integrate Any into Algebraic? The interface will be
changed:
Algebraic!(short, int) x;
x.allowed!int --> x.Algebraic.allowed!int
x.hasValue --> x.Algebraic.empty
x.peek!int --> &(x.Algebraic.instance!int())
> P.S. I *love* the trick with the homonym inner namespace! It solves the
> naming problem so elegantly. I'll use it in RefCounted too.
It was a bit surprising for me that the inner template could access
member variables without being mixed in. But I found that it's just
another "template member function", and so it's legal. :-)
Shin
More information about the phobos
mailing list