#include <iostream>
#include <functional>
int f() {
std::cout << "Here is f" << std::endl;
return 5;
}
int g(std::function<int()> a) {
int x = a();
int y = 2 * a();
return x + y;
}
int main() {
int z = g(f);
std::cout << "main: z = " << z << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCmludCBmKCkgewogICAgc3RkOjpjb3V0IDw8ICJIZXJlIGlzIGYiIDw8IHN0ZDo6ZW5kbDsKICAgIHJldHVybiA1Owp9CgppbnQgZyhzdGQ6OmZ1bmN0aW9uPGludCgpPiBhKSB7CiAgICBpbnQgeCA9IGEoKTsKICAgIGludCB5ID0gMiAqIGEoKTsKICAgIHJldHVybiB4ICsgeTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgeiA9IGcoZik7CiAgICBzdGQ6OmNvdXQgPDwgIm1haW46IHogPSAiIDw8IHogPDwgc3RkOjplbmRsOwp9Cg==