小编ITD*_*TDW的帖子

您可以在没有 std::function 的情况下将 lambda 作为参数传递吗

std::function我需要将带有捕获的 lambda 传递给函数,但由于性能缓慢,我试图避免使用,并且我正在制作一个性能关键的应用程序。我也不想使用模板,因为返回类型和参数是特定的,但如果这是唯一的方法,我可以使用模板。

我已经尝试过 ChatGPT 的答案,但没有成功:

void my_func(void (*callback)(int, int, int))
{
    callback(1, 2, 3);
}

int main()
{
    int x = 10;

    my_func([&](int a, int b, int c)
    {
        std::cout << "Example, a + b + c + x: " << a + b + c + x << std::endl;
    });

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误说:

不存在从“lambda [](int a, int b, int c)->void”到“void (*)(int, int, int)”的合适转换函数

c++ lambda

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

标签 统计

c++ ×1

lambda ×1