#include <iostream>
#include <functional>
#include <unordered_map>
#include <string>
using namespace std;
int main() {
string greetings = "Hello, you filthy world!";
unordered_map<string, function<void()>> menu = {
{"Foo", []{ cout << "Foo" << endl; }},
{"Greet", [&]{ cout << greetings << endl; }}
};
for(auto const & menu_item: menu){
cout << "> " << menu_item.first << endl;
}
string decision;
cin >> decision;
menu.at(decision)();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlIDxzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0cmluZyBncmVldGluZ3MgPSAiSGVsbG8sIHlvdSBmaWx0aHkgd29ybGQhIjsKCQoJdW5vcmRlcmVkX21hcDxzdHJpbmcsIGZ1bmN0aW9uPHZvaWQoKT4+IG1lbnUgPSB7CgkJeyJGb28iLCBbXXsgY291dCA8PCAiRm9vIiA8PCBlbmRsOyB9fSwKCQl7IkdyZWV0IiwgWyZdeyBjb3V0IDw8IGdyZWV0aW5ncyA8PCBlbmRsOyB9fQoJfTsKCQoJZm9yKGF1dG8gY29uc3QgJiBtZW51X2l0ZW06IG1lbnUpewoJCWNvdXQgPDwgIj4gIiA8PCBtZW51X2l0ZW0uZmlyc3QgPDwgZW5kbDsKCX0KCQoJc3RyaW5nIGRlY2lzaW9uOwoJY2luID4+IGRlY2lzaW9uOwoJbWVudS5hdChkZWNpc2lvbikoKTsKCQoJcmV0dXJuIDA7Cn0=