#include <iostream>
using fun = int(*)(int, int);
int main() {
fun f1 = +[](int a, int b) { return a + b; };
fun f2 = static_cast<fun>([](int a, int b) { return a + b; });
std::cout << f1(1, 2) << std::endl;
std::cout << f2(2, 3) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgZnVuID0gaW50KCopKGludCwgaW50KTsKCmludCBtYWluKCkgewoJZnVuIGYxID0gK1tdKGludCBhLCBpbnQgYikgeyByZXR1cm4gYSArIGI7IH07CglmdW4gZjIgPSBzdGF0aWNfY2FzdDxmdW4+KFtdKGludCBhLCBpbnQgYikgeyByZXR1cm4gYSArIGI7IH0pOwoKCXN0ZDo6Y291dCA8PCBmMSgxLCAyKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgZjIoMiwgMykgPDwgc3RkOjplbmRsOwoJCglyZXR1cm4gMDsKfQ==