I have a namespace; mesh, in which I have six member classes, solid, face, halfedgeloop, halfedge, edge and vertex. Each of these are templated and are declared in the namespace such as:

namespace mesh {
class solid;
class face;
class halfedgeloop;
class halfedge;
class edge;
class msh_vertex;
};

and thereafter implemented in their corresponding files, such as mesh.h, face.h and so on. However the problem is that there exist circular references among them and I therefore need to do some form of predeclarration of each class, however I don't know how I should predeclare a template class that exist in a namespace.
Is it at all possible?