gpt4 book ai didi

c++ - 用Lambda函数重新捕获变量是否合法?

转载 作者:行者123 更新时间:2023-11-30 00:47:26 27 4
gpt4 key购买 nike

这样写代码是否正确:

class A
{
private:
int m_int;

public:
void foo()
{
int a = 1;
int b = 2;
int c = 3;
float f = 3.14f;
std::string s("Something");

const auto f1 = [=] ()
{
// use only a, b, c
int d = a + b + c;

const auto f2 = [=]
{
// use f, s and also d
std::cout << f << s << d ;
}
};
}
};

问题是内部 lambda 使用了一些外部 lambda 不需要的变量。如果这不是有效的,那我应该怎么写?

注意:我还可以捕获指针变量。所以 abcfs 也可以是指针.

最佳答案

所询问的相关代码(尽管内部 lambda 声明中存在拼写错误)是正确的。由于第一个 lambda 将从封闭函数捕获所有内容,因此第二个 lambda 将通过“捕获所有”封闭 lambda 来访问它。

关于c++ - 用Lambda函数重新捕获变量是否合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34926326/

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