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