template<class F, class T>
void foo(F f, T x){
f(x);
}
void bar(int){}
void bar(double){}
int main(){
foo<void(int)>(bar, 5);
}
dGVtcGxhdGU8Y2xhc3MgRiwgY2xhc3MgVD4Kdm9pZCBmb28oRiBmLCBUIHgpewogIGYoeCk7Cn0KCnZvaWQgYmFyKGludCl7fQp2b2lkIGJhcihkb3VibGUpe30KCmludCBtYWluKCl7CiAgZm9vPHZvaWQoaW50KT4oYmFyLCA1KTsKfQ==