C++의 람다함수는 C++11에서부터 도입된 기능이며, 보통 재사용하지 않고, 이름을 지정할 가치가 없는 짧은 코드 조각에 사용할 수 있는 인라인 함수이다. ( C#에도 존재하며 나는 주로 Unity에서 Action, Func와 같은 딜리게이트에 바인딩하기 위해 자주 사용했다. )

//간단한 예시코드 2개의 수를 입력받아 더한다음 반환시키는 람다함수
int TwoNumberPlus = [](int a, int b)
{
	return a + b;
};

cout << TwoNumberPlus(10,20) << endl;

람다 함수는 바깥쪽 범위에 존재하는 변수에도 접근할수 있다. (클로저)

위에서는 []로 되어있어서 해당 변수에 로컬인 변수에만 액세스가 가능했다 (입력으로 받는 값만 접근이 가능하다는 의미임)

하지만 이외에도 여러가지 구문이 존재한다.

[&]: 모든 외부 변수에 대해 참조로 캡처

[=]: 모든 외부 변수에 대해 값복사로 캡처 ( C++20부터는 this를 명시적으로 ex[=,this] )

[a,&b]: a변수는 값복사로 갭처하고 , b는 참조로 캡처

[]: 해당 람다함수에 대해 로컬인 변수에만 접근 가능