#include <iostream>
#include <typeinfo>
void f1(void (*f)(int));
void f2(void (&f)(int));
void f3(void ( f)(int));
int main()
{
std::cout
<< typeid(f1).name() << std::endl
<< typeid(f2).name() << std::endl
<< typeid(f3).name() << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+Cgp2b2lkIGYxKHZvaWQgKCpmKShpbnQpKTsKdm9pZCBmMih2b2lkICgmZikoaW50KSk7CnZvaWQgZjModm9pZCAoIGYpKGludCkpOwoKaW50IG1haW4oKQp7CglzdGQ6OmNvdXQKCQk8PCB0eXBlaWQoZjEpLm5hbWUoKSA8PCBzdGQ6OmVuZGwKCQk8PCB0eXBlaWQoZjIpLm5hbWUoKSA8PCBzdGQ6OmVuZGwKCQk8PCB0eXBlaWQoZjMpLm5hbWUoKSA8PCBzdGQ6OmVuZGw7Cn0K