#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);
}
