在 C++ 中,将 lambda 表达式传递给函数时,函数那边应该使用 `std::function` 类型来接收 lambda 表达式。\n\n`std::function` 是一个通用的函数包装器,它可以包装任何可调用的目标(函数、函数指针、成员函数、函数对象等),包括 lambda 表达式。通过使用 `std::function` 作为函数参数类型,可以将 lambda 表达式作为参数传递给函数,并在函数内部调用它。\n\n下面是一个示例:\n\n`cpp\n#include \n#include \n\nvoid callLambda(std::function<void()> fn)\n{\n fn(); // 调用 lambda 表达式\n}\n\nint main()\n{\n int x = 5;\n \n // 定义 lambda 表达式\n auto lambda = x {\n std::cout << "Lambda: " << x << std::endl;\n };\n \n // 将 lambda 表达式传递给函数\n callLambda(lambda);\n \n return 0;\n}\n`\n\n在上面的示例中,`callLambda` 函数的参数类型为 `std::function<void()>`,它可以接受任何无参数且返回类型为 `void` 的可调用目标。在 `main` 函数中,定义了一个 lambda 表达式 `lambda`,然后将其作为参数传递给 `callLambda` 函数。在 `callLambda` 函数内部,通过 `fn()` 调用了传递的 lambda 表达式。输出结果为 `Lambda: 5`,说明 lambda 表达式成功被传递并调用。