我有一些简单的代码:
#include <iostream>
#include <map>
#include <string>
#include <math.h>
using namespace std;
class Calculator{
private:
map<string, double (Calculator::*)(double)> mp = {
{"ABS", &Calculator::abs}};
public:
Calculator(){
cout << (this->*mp["ABS"])(-4.2655) << "\n";
}
double abs(double ting){
return fabs(ting);
}
};
int main() {
Calculator calc;
return 0;
}
它编译正常,没有错误。但是,正如上面的例子所示,map
中包含的函数只允许一个double
类型的参数。但是,我希望允许可变数量的多类型参数。
例如,到目前为止,我有一个abs()
方法,但是如果要向map
添加一个sigma()
函数,该函数接受参数int startVal, int endVal, string expression
,那么如何使用所示的布局来完成此操作呢?
我知道template<>
在这里可能有用,但我对它还很陌生,我想知道它应该如何(或是否)在这里使用。
1条答案
按热度按时间w1e3prcc1#
这个怎么样