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

+ Recent posts