#include <cstdlib>
#include <iostream>
using namespace std;
void add() { cout<<"dodajemy"<<endl; }
void mul() { cout<<"mnożymy"<<endl; }
void stop() { exit(0); }
typedef void fun();
struct { const string cmd; fun *call; } tb[]=
{
{"+",&add},
{"*",&mul},
{"stop",[]() -> { exit(0); }},
};
int main()
{
for(string cmd;getline(cin,cmd);)
{
bool found=false;
for(const auto &r:tb)
{
if(r.cmd==cmd)
{
r.call();
found=true;
break;
}
}
if(!found) cout<<"Nieznane polecenie"<<endl;
}
}
I2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgYWRkKCkgeyBjb3V0PDwiZG9kYWplbXkiPDxlbmRsOyB9CnZvaWQgbXVsKCkgeyBjb3V0PDwibW5vxbx5bXkiPDxlbmRsOyB9CnZvaWQgc3RvcCgpIHsgZXhpdCgwKTsgfQoKdHlwZWRlZiB2b2lkIGZ1bigpOwpzdHJ1Y3QgeyBjb25zdCBzdHJpbmcgY21kOyBmdW4gKmNhbGw7IH0gdGJbXT0KewoJeyIrIiwmYWRkfSwKCXsiKiIsJm11bH0sCgl7InN0b3AiLFtdKCkgLT4geyBleGl0KDApOyB9fSwKfTsKCmludCBtYWluKCkKewogICAgZm9yKHN0cmluZyBjbWQ7Z2V0bGluZShjaW4sY21kKTspCiAgICB7CiAgICAJYm9vbCBmb3VuZD1mYWxzZTsKICAgIAlmb3IoY29uc3QgYXV0byAmcjp0YikKICAgIAl7CiAgICAJCWlmKHIuY21kPT1jbWQpCiAgICAJCXsKICAgIAkJCXIuY2FsbCgpOwogICAgCQkJZm91bmQ9dHJ1ZTsKICAgIAkJCWJyZWFrOwogICAgCQl9CiAgICAJfQogICAgCWlmKCFmb3VuZCkgY291dDw8Ik5pZXpuYW5lIHBvbGVjZW5pZSI8PGVuZGw7CiAgICB9Cn0=
prog.cpp:14:18: error: expected type-specifier before ‘{’ token
{"stop",[]() -> { exit(0); }},
^
prog.cpp:15:1: error: invalid user-defined conversion from ‘<lambda()>’ to ‘void (*)()’ [-fpermissive]
};
^
prog.cpp:14:18: note: candidate is: ‘<lambda()>::operator int (*)()() const’ <near match>
{"stop",[]() -> { exit(0); }},
^
prog.cpp:14:18: note: no known conversion from ‘int (*)()’ to ‘void (*)()’