- Syntex of lambda
[caps] {
function_contents;
};
또는
[caps] (params) (mutable) (throwSpec) (->retType) {
function_contents;
};
- caps: captures. 외부의 변수 값을 람다 내부에서 사용할 수 있게 함
[&] : 람다 외부의 값을 reference 형식으로 전달
- params: 람다는 일반 함수와 마찬가지로 파라미터 값을 받을 수 있는데, 이와 같이 파라미터 값을 람다 내부로 건네주는데 사용
- mutable : 람다에 mutable 선언시 value 로 전달된 captures를 람다 내부에서 수정할 수 있으며 수정된 값은 람다 내부에서 유지. (value로 전달 됐으므로 람다 밖에서는 수정된 값이 적용되지 않음)
- throwSpec
- retType: 람다는 일반함수와 마찬가지로 값을 리턴할 수 있는데, 이 리턴값의 type을 지정하는데 사용
- function_contents: 람다가 수행하는 내용
- ex)
int x = y = 1;
auto l = [=x, &y] -> bool {
if ( ++x == ++y )
return true;
else
return false;
};
// true 리턴, x는 1, y는 2 값으로 변경.
- lambda의 장점
- lambda의 한계
댓글 없음:
댓글 쓰기