gpt4 book ai didi

c++ - Lambda 作为函数参数

转载 作者:IT老高 更新时间:2023-10-28 13:22:18 39 4
gpt4 key购买 nike

在不使用 auto 或模板的情况下声明 lambda 变量或函数参数的符号是​​什么?有什么办法吗?或者编译器是否为每个在编译时程序员不知道名称的 lambda 定义了一个唯一的类对象?如果是这样,为什么?它们不能作为某种函数指针传递吗?如果这不可能,那将是一个巨大的失望。

最佳答案

Lambda 可以保持状态(如从周围上下文中捕获的引用);如果没有,它们可以存储在函数指针中。如果有,则必须将它们存储为函数对象(因为函数指针中没有保存状态的位置)。

// No state, can be a function pointer:
int (*func_pointer) (int) = [](int a) { return a; };

// One with state:
int b = 3;
std::function<int (int)> func_obj = [&](int a) { return a*b; };

关于c++ - Lambda 作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8109571/

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