- [] 캡쳐 블록 (사용시 외부 변수를 캡쳐해 람다 몸통에서 사용 가능)
- () 전달 인자 (받는 인자가 없을때 생략 가능)
- -> 반환 타입(return 타입이 void일 경우 생략 가능)
- {} 함수 몸통
임시적인 클로저 객체가 생성됨
()를 통해 임시적인 클로저 객체를 실행시킴
* [] 캡쳐 블록
람다 안에서 람다 밖에 있는 변수들에게 접근하고 싶을때(람다 바깥에 변수에 접근하고 싶다면 캡쳐하고 사용해야함)
- [&]() { /* */ } 외부의 모든 변수들을 레퍼런스로 가져온다. (함수의 Call - by - reference 를 생각)
- [=]() { /* */ } 외부의 모든 변수들을 값으로 가져온다. (함수의 Call - by - value 를 생각)
- [=, &x, &y] { /* */ }, 혹은 [&, x, y] { /* */ } 외부의 모든 변수들을 값/레퍼런스로 가져오되, x 와 y 만 레퍼런스/값으로 가져온다
- [x, &y, &z] { /* */ } 지정한 변수들을 지정한 바에 따라 가져온다.
본문 내용 출처 :
씹어먹는 C++ 토막글 ② - 람다(lambda) 함수
modoocode.com
'C++ > 기본 문법' 카테고리의 다른 글
<C++> sort (0) | 2022.04.12 |
---|---|
<C++> pair 와 tuple (0) | 2022.04.12 |
변수(Variable) (0) | 2021.08.31 |
namespace (0) | 2021.08.31 |
iostream (0) | 2021.08.31 |