#include <iostream>
template <int (*f)(int a, int b)> int run(int a, int b)
{
return f(a, 1) + f(1, b);
}
int test(int a, int b) {
return a+b;
}
int main()
{
std::cout << run<test>(5, 6) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPGludCAoKmYpKGludCBhLCBpbnQgYik+IGludCBydW4oaW50IGEsIGludCBiKQp7CiAgICByZXR1cm4gZihhLCAxKSArIGYoMSwgYik7Cn0KCmludCB0ZXN0KGludCBhLCBpbnQgYikgewogICAgcmV0dXJuIGErYjsKfQoKaW50IG1haW4oKQp7CiAgICBzdGQ6OmNvdXQgPDwgcnVuPHRlc3Q+KDUsIDYpIDw8IHN0ZDo6ZW5kbDsKICAgIHJldHVybiAwOwp9