lambda capture

람다: 가까운 곳에 둔 작은 함수 객체와 캡처 정책

[], [this], [*this], mutable, std::sort, std::find_if는 람다가 알고리즘과 상태를 연결하는 방식입니다.

캡처 없음

무캡처 람다 동작

순수한 비교나 변환 규칙을 표현할 때 읽기 쉽습니다.

값 캡처

외부 값을 복사해 람다 객체 안에 보관합니다

mutable이 없으면 복사된 값도 기본적으로 수정할 수 없습니다.

참조 캡처

참조 캡처 반영 기준

람다 수명이 원본보다 길어지면 위험합니다.

this 캡처

멤버 함수 안에서 객체 멤버를 사용할 때 등장합니다

[*this]는 객체 복사 의미를 만들어 수명 문제를 줄일 수 있습니다.

sort 기준 람다는 비교 기준을 호출 위치에 바로 붙일 수 있습니다.
transform 변환 규칙이 짧을수록 람다의 장점이 커집니다.
수명 참조 캡처 람다를 저장할 때는 원본 객체의 생존 기간을 확인합니다.