我最近在使用 C++ 时遇到了一些问题,基本上是这样的:
在函数内部(比如 int main),我声明了一个变量 Y = 5,并且我有这个 lambda 函数,它接收一个值并将 Y 相加;
我的问题是:我需要将此 lambda 函数传递给一个已经存在的函数,以便可以在另一个函数内部调用它。
我尝试了几件事,但都没有按我的预期工作(有些甚至没有工作):
double receives( double (*f)(double) )
{
return f(5);
}
int main()
{
int y = 5;
auto fun = [](double x) {
return x + y;
};
cout << receives(&fun);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
另一个问题是我无法更改我的接收函数签名,由于代码的其余部分,参数必须是 double (*f)(double)。我还需要 lambda 函数来传递 y 值,而不使用其他参数。
任何人都可以帮助我吗?