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