aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.pt/explicit78.C
blob: 2375816af87cdd33801b0065c60e5a7f8b0160d8 (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
// Build don't link:

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>());
}