// { dg-do link  }
// GROUPS passed templates membertemplates
template<int N>
struct I {
};

template<class T>
struct A {

  int r;

  template<class T1, class T2>
  void operator()(T1, T2)
  { r = 0; }

  template<int N1, int N2>
  void operator()(I<N1>, I<N2>)
  { r = 1; }
};

int main()
{
    A<float> x;
    I<0> a;
    I<1> b;

    x(a,b);
    if (x.r != 1)
        return 1;

    x(float(), double());
    if (x.r != 0)
        return 1;

    return 0;
}
