有两个指向不同功能的指针
typedef std::vector<double> TData;
double ( * p_test1 ) ( const TData> &arg);
double ( * p_test2 ) ( const TData> &ar1, char *arg2, char *arg3);
和一个方法,它有一个指向函数的指针作为参数
double f (double ( * p_test1 ) ( const TData &arg ))
{
//Long and not trivial algorithm processing results of p_test
for ( i = 0;... )
{
double res = p_test (arg); //Some computations
}
}
f() 方法包含困难的计算(这里用 for 循环代替)。
是否可以将此参数模板化(即指向具有不同数量参数的函数的指针)以获得处理两种类型参数的通用函数
double f (double ( * p_test1 ) ( const TData &arg ));
double f (double ( * p_test2 ) ( const TData> &ar1, char *arg2, char *arg3));
或者有什么方法可以编写这样的函数,例如写一个指向函数指针的指针?
我想避免 f() 函数的部分专业化,因为它很复杂(重复覆盖长代码效率不高)。
谢谢你的帮助...