C++ 25 [람다 표현식]
https://learn.microsoft.com/ko-kr/cpp/cpp/lambda-expressions-in-cpp?view=msvc-170
C++ 람다 식
자세한 정보: C++의 람다 식
learn.microsoft.com
▣ 람다 : c++11 표준부터 지원, 람다 표현식, 람다 함수, 이름 없는 함수
▣ 람다 사용방법 : [캡쳐](매개변수){함수코드;};(호출인자);
[](매개변수){함수코드}(호출인자);
[]{함수코드;};
[]{함수코드;};
[](매개변수){함수코드;};
auto n = [](매개변수){함수코드;} ;
auto n = [](매개변수) -> 반환형 {함수코드;};
▣ (;) 세미콜론에 위치는 문장 끝, 함수 끝 부분에 넣어야 한다. 람다식도 동일하다.
▣ 캡처 : 람다 외부 정의되어 있는 변수, 상수를 람다 내부에 사용할 여부를 지정
[=](){}() : 모든 람다 외부 변수를 복사해서 람다 함수 내부에서 사용가능
[&](){}() : 모든 람다 외부 변수를 참조해서 람다 내부 함수에서 사용가능
[n1, n2](){}() : n1, n2를 복사해서 람다 함수 내부에서 사용가능
[&n1, &n2](){}() : n1, n2를 참조해서 람다 함수 내부에서 사용가능
[n1, &n2](){}() : n1는 복사하고 n2는 참조해서 람다 함수 내부에서 사용가능
[=, &n2](){}() : 모든 외부 변수는 복사해서 사용 가능하지만 n2는 참조해서 람다 함수 내부에서 사용가능
[&, n2](){}() : 모든 외부 변수는 참조해서 사용 가능하지만 n2는 복사해서 람다 함수 내부에서 사용가능