lambda expression

람다는 즉석에서 만들어지는 함수 객체

캡처 목록은 외부 상태를 가져오고, 매개변수와 본문은 `operator()`처럼 호출될 동작을 정의합니다.

[캡처]

`valueToAdd` 같은 외부 변수를 값 또는 참조로 가져옵니다.

(매개변수)

`int n`, `const Person& p1`처럼 알고리즘이 넘기는 요소를 받습니다.

-> 반환타입

대부분 생략하며, 정렬 조건처럼 `bool`이 추론됩니다.

{ 본문 }

출력, 필터링, 비교 기준 같은 사용자 정의 동작을 담습니다.

클로저 객체

컴파일러가 이름 없는 함수 객체 타입으로 바꿉니다.

AddAndPrint(10)

상태 `_valueToAdd`를 멤버 변수로 보관하고 `operator()(int n)`에서 사용합니다.

[valueToAdd](int n)

캡처한 값을 클로저 내부에 보관하고 같은 호출 형태로 `std::for_each`에 전달됩니다.