Seems like it is, but I haven't made enough sense of the Variant code to be 
sure:

    import std.variant;
    import std.typecons;

    struct Val
    {
        Variant v;
        Object  o;
    }

    void set(T...)( T vals )
    {
        alias Tuple!(Val) Wrap;
        Wrap    wrap;
        Variant data;
    
        wrap.field = vals;
        data = wrap;
    
    }

    void main()
    {
        Val val;
        set( val );
    }

$ dmd test
/usr/local/include/d/std/variant.d(509): Error: template 
std.typecons.Tuple!(Val).Tuple.__ctor(U...) if (U.length == Types.length) does 
not match any function template declaration
/usr/local/include/d/std/variant.d(509): Error: template 
std.typecons.Tuple!(Val).Tuple.__ctor(U...) if (U.length == Types.length) 
cannot deduce template function from argument types !()()
$ 

It's also weird that if I assign a value containing a variant plus more stuff 
to a variant it seems to think it can hold it.  In my real code 
(std.concurrency) I test the value size before assigning, but the test passes 
for some reason.
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to