Forward referencing templates..
James Dean Palmer
james at tiger3k.com
Wed Oct 25 08:45:28 PDT 2006
I am interested in expressing some data structure relationships like the
half-edge data structure using templates. For example, consider these
classes with these type dependencies:
class edge(TFace, TVector) {
...
}
class face(TSurface, TEdge) {
...
}
class surface(TFace) {
...
}
class vector(TNumeric) {
...
}
The idea being any one of these classes could be subclassed - for
example to represent weighted edges, weighted faces, etc.. Or a
different kind of basic numeric could be used. Now I would like to say
this..
alias vector!(double) vector3D;
alias edge!(face3D, vector3D) edge3D;
alias face!(surface3D, edge3D) face3D;
alias surface!(face3D) surface3D;
But I get an error about a forward reference when trying to do it like
this. C++ has difficulty expressing the same kind of relationship
because it doesn't forward reference templates. I believe that Java can
represent this kind of relationship though.
Does anyone know if this can't be done in D? Or is there a better "D"
way to do it? Thanks!
More information about the Digitalmars-d
mailing list