#include <iostream>
using namespace std;
void doSome(int (*func)(int &)){
int a;
a = 5;
int res = func(a);
cout << a << "\n";
}
void doSome(int (*func)(double &)){
double a;
a = 5.2;
int res = func(a);
cout << a << "\n";
}
int main() {
doSome([](int &a){
a += 2;
return 1;
});
doSome([](double &a){
a += 2.5;
return 1;
});
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCnZvaWQgZG9Tb21lKGludCAoKmZ1bmMpKGludCAmKSl7CglpbnQgYTsKCWEgPSA1OwoJaW50IHJlcyA9IGZ1bmMoYSk7Cgljb3V0IDw8IGEgPDwgIlxuIjsKfQoKCnZvaWQgZG9Tb21lKGludCAoKmZ1bmMpKGRvdWJsZSAmKSl7Cglkb3VibGUgYTsKCWEgPSA1LjI7CglpbnQgcmVzID0gZnVuYyhhKTsKCWNvdXQgPDwgYSA8PCAiXG4iOwp9CgoKaW50IG1haW4oKSB7Cglkb1NvbWUoW10oaW50ICZhKXsKCQlhICs9IDI7CgkJcmV0dXJuIDE7Cgl9KTsKCQoJZG9Tb21lKFtdKGRvdWJsZSAmYSl7CgkJYSArPSAyLjU7CgkJcmV0dXJuIDE7Cgl9KTsKCXJldHVybiAwOwp9