代码之家  ›  专栏  ›  技术社区  ›  Riolku

基于模板字符串文字返回的C++函数指针

c++
  •  0
  • Riolku  · 技术社区  · 8 年前

    如何基于字符串文字参数返回函数对象?

    template<const char * s> func_pointer(int arg);
    

    extern variable

    2 回复  |  直到 8 年前
        1
  •  1
  •   tinstaafl    8 年前

    map<string, function<int(int)>

    #include <string>
    #include <iostream>
    #include <functional>
    #include <map>
    
    int add(int a, int b){return a+b;}
    int subtract(int a, int b){return a-b;}
    int multiply(int a, int b){return a*b;}
    int divide(int a, int b){return (b!=0?a/b: -1);}
    map<string, function<int(int,int)>> functions = 
    {
        {"add",add},
        {"subtract",subtract},
        {"multiply",multiply},
        {"divide",divide}
    };
    
    int main(int argc, char** argv)
    {
        cout << functions["add"](5,2);
        return 0;
    }
    
        2
  •  0
  •   Riolku    8 年前