| // { dg-do assemble } | |
| template<class CoordinateSystem, class MeshTag> | |
| struct Mesh { }; | |
| struct RectGrid { }; | |
| struct RectMesh { }; | |
| struct Cartesian { }; | |
| template<class CS> | |
| struct Mesh<CS, RectGrid> { }; | |
| template<class CS> | |
| struct Mesh<CS, RectMesh> : public Mesh<CS, RectGrid> { }; | |
| template<class CS> | |
| void foo(const Mesh<CS, RectGrid> &) | |
| { | |
| } | |
| int main() | |
| { | |
| Mesh<Cartesian, RectMesh> m; | |
| foo(m); | |
| } |