array of elements of various subclasses

spir denis.spir at gmail.com
Sun Nov 7 09:52:52 PST 2010


On Sun, 07 Nov 2010 11:24:37 -0500
Jesse Phillips <jessekphillips+D at gmail.com> wrote:

> > And I'd like to know, as a possible workaround, if there is a way to save a variadic arg list:
> > 	class C {
> > 	    ??? xs;
> > 	    this(X xs...) {
> > 	        this.xs = xs;
> > 	    }
> > 	}
> > 
> > Denis
> > -- -- -- -- -- -- --
> > vit esse estrany ☣
> > 
> > spir.wikidot.com
> >   
> 
> You it is a typed variadic list (as shown above) it is just an array of that type so you should be able to save it to an X[]. If you are using the unsafe version then, no. 

No, in fact a variadic param list is not an array -- this is according to TDPL an iternal type of the language. Trying to assign it to an X[] var throws:
DeeMatch.d(371): Error: cannot implicitly convert expression (patterns) of type DeeMatch.Pattern to Pattern[]
Well, actually, the type of the expression given in the error (DeeMatch.Pattern) is wrong: this is the type of each element of the variadic list.

Denis
-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com



More information about the Digitalmars-d-learn mailing list