#include <iostream>
#include <functional>
#include <map>
#include <string>
void foo2(int a, int b)
{
std::cout << a+b << '\n';
}
std::string foo(int x)
{
if(x == 1)
return "foo2";
}
int main()
{
std::map<std::string, std::function<void(int, int)>> m;
m["foo2"] = foo2;
int x = 1;
int y = 2;
int z = 3;
m[foo(x)](y, z);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KCnZvaWQgZm9vMihpbnQgYSwgaW50IGIpCnsKICAgIHN0ZDo6Y291dCA8PCBhK2IgPDwgJ1xuJzsKfQpzdGQ6OnN0cmluZyBmb28oaW50IHgpCnsKICAgIGlmKHggPT0gMSkKICAgICAgICByZXR1cm4gImZvbzIiOwp9CmludCBtYWluKCkKewogICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQsIGludCk+PiBtOwogICAgCiAgICBtWyJmb28yIl0gPSBmb28yOwogICAKICAgIGludCB4ID0gMTsKICAgIGludCB5ID0gMjsKICAgIGludCB6ID0gMzsKICAgIG1bZm9vKHgpXSh5LCB6KTsKfQo=