How to structure templated classes
Christian Köstlin
christian.koestlin at gmail.com
Wed May 9 13:21:18 PDT 2012
I have a templated class that has many (static) inner classes which also
use the template parameter. e.g.
import std.stdio;
class Test(T) {
static class Inner1 : Test {
T h;
}
static class Inner2 : Test {
T h;
}
}
unittest {
alias Test!(string) StringTest;
alias Test!(int) IntTest;
auto t1 = new StringTest.Inner1();
auto t2 = new StringTest.Inner1();
auto t3 = new IntTest.Inner2();
auto t4 = new IntTest.Inner2();
}
int main(string[] args) {
return 0;
}
in my real case there are a lot more inner classes (which acutally
implement the interface defined by the surrounding class).
this is very convenient, because i can create all of the inner classes
for one type just with an alias. thats what templates are for.
the problem is, i want to pull out the inner classes so that my module
gets smaller, but then i have to make several aliases to get the desired
template instances e.g. i would create a module:
class Innert1(T) : Test!(T) {
T h;
}
and an alias for that like: alias Innert1!(string) StringInner1;
that is very repetitive when i have many of those inner classes.
So the question now is. Is there a way to split the big module in
several smaller ones, and at the same time keep the possibility to let
the "template magic" do its work?
thanks in advance
christian
More information about the Digitalmars-d-learn
mailing list