#include <iostream>
#include <functional>
#include <map>
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int main() {
auto mod = [](int a, int b) { return a % b; };
auto subtruct = sub;
std::map<std::string, int(*) (int,int)> funcs;
funcs.insert({"+", add});
funcs.insert({"%", mod});
funcs.insert({"-", subtruct});
std::cout << funcs["+"](19, 7) << "\n";
std::cout << funcs["%"](19, 4) << "\n";
std::cout << funcs["-"](19, 5) << "\n";
return 0;
}
/*
run:
26
3
14
*/