람다 표현식(lambda expression) 이름 그대로 하나의 표현
아래 코드는 한 정수가 0 초과이며 10 미만인 수를 찾는 코드이다.
std::find_if(container.begin(), container.end(), [](int val) { return 0 < val && val < 10; });
[](int val) { return 0 < val && val < 10; } //이게 람다식
일반적으로 람다식은 인수로 쓰이는 데에 사용한다.
auto로 람 클로저(closure)를 복사할 수 있다.
int x; // x는 지역 변수
...
auto c1 = [x](int y) { return x * y > 55; };
// c1은 람다에 의해 만들어진 클로저의 복사본
auto c2 = c1; // c2는 c1의 복사본
auto c3 = c2; // c3는 c2의 복사본