How to store multiple callback functions with corresponding keys in C++

1 Answer

0 votes
#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

*/

 



answered May 15, 2021 by avibootz
...