gpt4 book ai didi

c++ - 如何声明一个接受 lambda 的函数?

转载 作者:IT老高 更新时间:2023-10-28 12:07:05 25 4
gpt4 key购买 nike

我在互联网上阅读了许多解释如何将 lambdas 与标准库(例如 std::find 一起使用)的教程,它们都很有趣,但我找不到任何这解释了我如何将 lambda 用于我自己的函数。

例如:

int main()
{
int test = 5;
LambdaTest([&](int a) { test += a; });

return EXIT_SUCCESS;
}

我应该如何声明 LambdaTest?它的第一个参数的类型是什么?然后,我怎样才能调用传递给它的匿名函数——例如——“10”作为它的参数?

最佳答案

考虑到除了 lambda 之外,您可能还希望接受函数指针和函数对象,您可能希望使用模板来接受带有 operator() 的任何参数。这就是像 find 这样的标准函数。它看起来像这样:

template<typename Func>
void LambdaTest(Func f) {
f(10);
}

请注意,此定义不使用任何 c++0x 功能,因此它完全向后兼容。只有使用 c++0x 特定的 lambda 表达式调用函数。

关于c++ - 如何声明一个接受 lambda 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2938571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com