1 // { dg-do compile { target c++11 } }
2 // PR c++/69056
3
4 template <typename T, typename... Args>
5 void resolver(int (*) (T, Args...));
6
funcA(int,float)7 int funcA(int, float) { return 0; }
funcA(double)8 int funcA(double) { return 0; }
9
funcB(int,float,char)10 int funcB(int, float, char) { return 0; }
funcB(int,bool)11 int funcB(int, bool) { return 0; }
funcB(double)12 int funcB(double) { return 0; }
13
funcC(int)14 int funcC(int) { return 0; }
funcC(double)15 int funcC(double) { return 0; }
16
17 void
foo(void)18 foo (void)
19 {
20 resolver (&funcA); // { dg-error "no match" }
21 resolver<int> (&funcA);
22 resolver<double> (&funcA);
23
24 resolver<int> (&funcB); // { dg-error "no match" }
25 resolver<int, char> (&funcB); // { dg-error "no match" }
26 resolver<int, float> (&funcB);
27
28 resolver<int> (&funcC);
29 resolver<int, float> (&funcC); // { dg-error "no match" }
30 }
31