小编Joã*_*sta的帖子

如何将 Lambda 函数作为参数传递

我最近在使用 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 值,而不使用其他参数。

任何人都可以帮助我吗?

c++ parameters lambda function parameter-passing

5
推荐指数
1
解决办法
1329
查看次数

标签 统计

c++ ×1

function ×1

lambda ×1

parameter-passing ×1

parameters ×1