summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/explicit78.C
blob: 34e4c758f4528e953a7c52dc8e27e9403fdd3698 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// { dg-do assemble  }

template <int I>
struct A {
};

template <int I, int J>
struct B {
  operator A<3> ();
  operator B<3, 7> ();
};


template <int I, int J>
void f(B<I, J>);

template <int I>
void f(A<I>)
{
}

int main()
{
  // Deduction fails with the first `f'.  Since `3' is explicitly
  // specified, we don't try any deduction with the second `f'.  So,
  // we call the second `f'.
  f<3>(B<2, 7>());
}