在Matlab中,可以使用函数句柄轻松限制函数的输入。假设我们有一个Matlab函数函数function z = f(x,y)
。如果我想修复x
的值(比如x=0
)并单独考虑y
的新函数,我可以使用简单的函数句柄符号:
g = @(y) f(0,y)
然后我可以评估g(y)
,好像它是一个常规函数。我的问题是,在C ++中实现这种行为的好方法是什么?假设我有一个简单的函数对象
struct f{
double operator()(double x,double y){return x*y;}
};
显然,我可以评估f(x,y)
任何一对双精度(x,y)
,但我可以方便地定义一个新的函数对象g(y)
,用f
来修复值x
?