// { dg-options "-std=gnu++0x" } template X f(Y,Z); // { dg-message "note" } template void f2(); void g() { f("aa",3.0); f("aa",3.0); // Z is deduced to be double f("aa",3.0); // Y is deduced to be char*, and // Z is deduced to be double f("aa",3.0); // { dg-error "no matching" } // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 10 } f2(); // okay }