| // { dg-do assemble } | |
| // GROUPS passed templates membertemplates | |
| template<int N, class T> | |
| struct B { | |
| }; | |
| template<int N1, int N2, int N3> | |
| struct D { | |
| struct E { | |
| template<int N4, class T> | |
| static void f(B<N4,T>) | |
| { } | |
| }; | |
| }; | |
| template<int N> | |
| struct A { | |
| template<int N2, class T, int N3> | |
| static void f(B<N2,T>, B<N3,T> b) | |
| { | |
| typedef typename D<N2,N3,N>::E E; | |
| E::f(b); | |
| } | |
| }; | |
| void foo() | |
| { | |
| A<5>::f(B<5,float>(),B<3,float>()); | |
| } | |