1 2 3 4 5 6 7 8 9 10 11 | template<class T, class... U> void f(T, U...); // #1 template<class T > void f(T); // #2 template<class T, class... U> void g(T*, U...); // #3 template<class T > void g(T); // #4 void h(int i) { f(&i); // error: ambiguous g(&i); // OK: calls #3 } |
dGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MuLi4gVT4gdm9pZCBmKFQsICBVLi4uKTsgLy8gIzEKdGVtcGxhdGU8Y2xhc3MgVCAgICAgICAgICAgID4gdm9pZCBmKFQpOyAgICAgICAgLy8gIzIKdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MuLi4gVT4gdm9pZCBnKFQqLCBVLi4uKTsgLy8gIzMKdGVtcGxhdGU8Y2xhc3MgVCAgICAgICAgICAgID4gdm9pZCBnKFQpOyAgICAgICAgLy8gIzQgCgoKdm9pZCBoKGludCBpKSB7CiAgZigmaSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVycm9yOiBhbWJpZ3VvdXMKICBnKCZpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT0s6IGNhbGxzICMzCn0K


