1// { dg-do assemble  }
2
3template<class CoordinateSystem, class MeshTag>
4struct Mesh { };
5
6struct RectGrid { };
7
8struct RectMesh { };
9
10struct Cartesian { };
11
12template<class CS>
13struct Mesh<CS, RectGrid> { };
14
15template<class CS>
16struct Mesh<CS, RectMesh> : public Mesh<CS, RectGrid> { };
17
18template<class CS>
19void foo(const Mesh<CS, RectGrid> &)
20{
21}
22
23int main()
24{
25  Mesh<Cartesian, RectMesh> m;
26  foo(m);
27}
28