1// { dg-do link  }
2// GROUPS passed templates membertemplates
3template<int N>
4struct I {
5};
6
7template<class T>
8struct A {
9
10  int r;
11
12  template<class T1, class T2>
13  void operator()(T1, T2)
14  { r = 0; }
15
16  template<int N1, int N2>
17  void operator()(I<N1>, I<N2>)
18  { r = 1; }
19};
20
21int main()
22{
23    A<float> x;
24    I<0> a;
25    I<1> b;
26
27    x(a,b);
28    if (x.r != 1)
29        return 1;
30
31    x(float(), double());
32    if (x.r != 0)
33        return 1;
34
35    return 0;
36}
37