C++/Skill (기본지식, 모던C++)

모던C++) 람다(Lambda) 함수

신우섭 2020. 3. 6. 17:42

핵심

[변수캡쳐](받을인자)->리턴타입{함수Body}(넘길인자)

Ex

[](int nNum)->int{return std::cout << nNum + 100 << std::endl;}(100);

결과 : 200

상세 설명

변수캡쳐

  1. [&]외부의 모든 변수들을 레퍼런스로 가져온다. (함수의Call - by - reference를 생각)

  2. [=] 외부의 모든 변수들을 값으로 가져온다. (함수의Call - by - value를 생각)

  3. [=, &x, &y] 혹은[&, x, y] 외부의 모든 변수들을 값/레퍼런스로 가져오되,x와y만 레퍼런스/값으로 가져온다

  4. [x, &y, &z] 지정한 변수들을 지정한 바에 따라 가져온다.

ps) 받을 인자가 void 라면 넘길인자 생략 가능