728x90
람다를 사용할 때 람다 외부에 정의되어 있는 변수를 람다 내부에서 사용하고 싶으면 그 변수를 캡쳐(Capture)하면 된다. 캡처는 참조나 복사로 전달이 가능하다. 참조로 할 때는 '&'를, 복사로 전달할 때는 '변수 이름'을 기술한다.
람다 표현의 '[ 람다 캡쳐 ] ( 파라미터 ) { 식 }' 중에서 맨 앞의 '[ 람다 캡쳐 ]'에 캡처할 변수를 기술한다.
다음과 같이 '[ &v1, &v2 ]' 사용하면 복수의 변수를 캡처할 수 있다.
또한 다음과 같이 '[&]' 사용하면 람다 외부의 모든 변수를 참조로 캡처할 수 있다.
728x90
'Basic Programming > C++ 11' 카테고리의 다른 글
C++11 - nullptr (0) | 2016.02.26 |
---|---|
C++11 - enum (0) | 2016.02.26 |
C++11 - range based for (0) | 2016.02.25 |
C++11 - 람다(lambda) 함수 - 1 (0) | 2015.12.08 |
C++11 - auto 키워드 (0) | 2015.12.08 |