我想创建一个通用函数,它返回一个函数指针,指向C/C++中的另一个函数.但是,第二个返回的函数应该能够使用第一个函数的变量.
例,
typedef double (*func_t)(double);
func_t inverse(func_t fn) {
// define another function here that uses fn
double solve(double x) {
// use fn
}
return &solve;
}
double sqr(double x) { return x * x; }
int main() {
func_t inv = inverse(sqr);
printf("sqrt %d = %f\n", 100, inv(100));
}
Run Code Online (Sandbox Code Playgroud)
显然gcc,g ++不允许我这样做.我可以在不使用类或结构的情况下实现此目的.