2017-03-18 1 views
1

는 내 설정에서이 코드 조각이 그 설정 자신의 값이 변경 될 때를위한 객체의 배열에 약간의 람다 함수 :람다에서 배열 구성원에 액세스하는 방법?

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

이 문제는 람다 내부, 난의 값이 쓰레기 것입니다. 어떻게해야합니까?

감사합니다.

답변

2

좋아해서 값 i 포착 시도 :

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

(변화는 람다의 []간에 일어난) I는 '이'필요가 있지만,이 [I되었고 그래서, 일

+1

, 이]. 고맙습니다. – pizzafilms

+0

일반적인 조언으로서 항상 캡처하려는 것을 명시 적으로 작성하는 것이 좋습니다. – Telokis

관련 문제