digitalmars.D.learn - Duck typing with std.variant.Algebraic/Variant
- Sebastian Graf (21/21) Apr 20 2013 Hi,
Hi, I wonder why I can't use Algebraic like this: struct Foo(bool flag) { size_t bar() { return flag ? 42 : 0; } } Foo!false f; Foo!true t; Algebraic!(typeof(t), typeof(f)) v; v = t; Variant i = v.bar(); // or an Algebraic of the return types. This doesn't compile anyway assert(i.type == typeof(size_t)); assert(i.get!size_t() == 42); Essentially what I miss is opDispatch implemented on Variant. There seemed to be a discussion with a proposal for an Any type in std.typecons some time ago (http://forum.dlang.org/thread/20100708100757.GA4412 dsource), but for some reason none of it has made it into Phobos. Can anyone explain about why it isn't implemented? Seems like I missed something...
Apr 20 2013