Get TypeNames of Variadic Templates
Christian Köstlin
christian.koestlin at gmail.com
Fri Feb 1 14:04:05 PST 2013
Hi Philippe,
wonderful solution. I also added
T get(T)() {
return components[staticIndexOf!(T, Children)];
}
to the class to get the Children out by type (works as long as there is
only one child of each type in the tuple).
thanks a lot!!!
christian
On 2/1/13 16:04 , Philippe Sigaud wrote:
> Hi Christian,
>
>> My question is, is it possible to generate this with some mapping algorithm,
>> instead of writing this loop by hand?
>
> You can create a tuple:
>
> class Component(Children...) {
> Children components; //<- Here
>
> this() {}
>
> static if (Children.length> 0)
> this(Children args)
> {
> components = args;
> }
> }
>
> void main()
> {
> auto c = new Component!(int, double, Component!(string));
> writeln(c.components);
>
> c.components[0] = 1;
> c.components[1] = 3.14159;
> c.components[2] = new Component!(string)("abc");
>
> writeln(c.components);
> writeln(c.components[2].components);
> }
More information about the Digitalmars-d-learn
mailing list