1159979Sglebius// { dg-do assemble } 2159979Sglebius 3159979Sglebiustemplate <int I> 4159979Sglebiusstruct A { 5159979Sglebius}; 6159979Sglebius 7template <int I, int J> 8struct B { 9 operator A<3> (); 10 operator B<3, 7> (); 11}; 12 13 14template <int I, int J> 15void f(B<I, J>); 16 17template <int I> 18void f(A<I>) 19{ 20} 21 22int main() 23{ 24 // Deduction fails with the first `f'. Since `3' is explicitly 25 // specified, we don't try any deduction with the second `f'. So, 26 // we call the second `f'. 27 f<3>(B<2, 7>()); 28} 29