posted by 구로보루 2018. 3. 1. 14:52

 람다 식은 호출되었거나 인수로서 함수에 전달된 위치에서 바로 익명 함수 개체를 정의하는 방법으로 일반적으로 알고리즘이나 비동기 메서드에 전달되는 코드를 캡슐화하는데 사용된다.

(https://msdn.microsoft.com/ko-kr/library/dd293608.aspx)

 

구성

[캡처 절] (매개변수 목록) mutable -> 반환타입 { 함수 정의 }

 

캡쳐 절

람다 표현식의 바깥 범위에서 캡처할 변수 목록

[=] -> 모든 자동 변수를 값으로 캡처해서 접근가능, 이용은 가능 변경이 불가

[&] -> 바깥 범위의 모든 변수를 참조로 접근가능, 본문에서 코드로 변경이 가능하기

   때문에 mutable 키워드가 필요없다.

[변수] -> 바깥에서 원하는 변수만 캡쳐

[&변수] -> 바깥에서 원하는 변수를 참조 캡쳐

[=, &변수] -> 변수만 참조 캡쳐, 나머지는 값으로 캡쳐

[&, 변수] -> 변수만 값으로 캡쳐, 나머지는 참조 캡쳐

 

매개변수 목록 : 람다가 호출될 때 람다에 표현식에서 넘겨받을 매개변수 목록

 

mutable : 값으로 캡처한 바깥 변수의 복제본을 수정 가능으로 표시하는 키워드, 생략가능

 

반환타입 : 반환되는 값이 없으면 void로 지정된다, 생략가능

'공부 > C++(STL)' 카테고리의 다른 글

vector 컨테이너  (0) 2018.03.29
array 컨테이너  (0) 2018.03.23
스마트 포인터  (0) 2018.02.23
반복자 연산  (0) 2018.01.26
accumulate 함수  (0) 2018.01.24