How to chain constructor args to a template memeber

Lutger lutger.blijdestijn at gmail.com
Thu Mar 11 10:37:26 PST 2010


BCS wrote:

> Using D2, I have a template class that looks something like this:
> 
> class C(T) { T t; }
> 
> (For simplicity, assume T is required to be a struct of some kind.) I want
> to have a constructor that passes on some of it's args to a constructor for
> t. This is easy as long as I don't need it to work for arbitrary
> constructors.
> 
> What I want to do (that doesn't seem to work) is this:
> 
> this(Args...)(int foo, float bar, Args args)
> {
>    t = T(args);
> 
>    ...
> }
> 
> Any ideas on fixes or work arounds?
> 

Workaround if T has a single constructor, perhaps it can be generalized with 
some work:

this(int foo, float bar, std.traits.ParameterTypeTuple!(T.__ctor) args)
{
    t = T(args);
}


More information about the Digitalmars-d-learn mailing list