// Build don't link:
// GROUPS passed templates membertemplates
template<class T, int N>
class A { };

template<int N>
struct X {
    template<class T2, int N2>
    void f(A<T2,N>&, A<int,N2>&)
    { }
};


void foo()
{
  X<3> x;
  A<char*, 3> a1;
  A<int, 2> a2;
  x.f(a1, a2);
}
