// Build don't link:
// 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>());
}

