gpt4 book ai didi

c++ - 如何访问 lambda 中的数组成员?

转载 作者:行者123 更新时间:2023-11-30 03:33:27 28 4
gpt4 key购买 nike

我的设置中有这段代码,它在对象数组上设置了一些 lambda 函数,以便在它们的值发生变化时:

for(int i = 0; i < kNumFreqs; i++)
{
settings.freqs[i]->setChangeFunction([&](float newValue){
DBG("filter" << i << ": " << newValue);
presetDirty = true;
});
}

问题是在 lambda 内部,i 的值是垃圾。我该怎么做?

谢谢。

最佳答案

尝试像这样按值捕获 i:

for(int i = 0; i < kNumFreqs; i++)
{
settings.freqs[i]->setChangeFunction([i](float newValue){
DBG("filter" << i << ": " << newValue);
presetDirty = true;
});
}

(变化发生在lambda的[]之间)

关于c++ - 如何访问 lambda 中的数组成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42870383/

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