캡처 규칙

람다 캡처 안전 기준

람다는 함수처럼 보이지만 상태를 가진 객체입니다. 캡처 방식이 값과 생명 주기를 결정합니다.

01

[]

외부 값을 보지 않는 순수한 조건이나 변환에 적합합니다.

pure callable
02

[x]

생성 시점의 값을 복사하므로 이후 원본 변경과 분리됩니다.

snapshot
03

[&x]

원본을 직접 읽고 바꾸지만 람다가 더 오래 살면 dangling reference가 됩니다.

lifetime risk
04

[this] / [*this]

멤버 접근은 편하지만 객체 생명 주기와 복사 비용을 함께 고려해야 합니다.

object capture

캡처 수명 확인: 참조 캡처는 짧은 동기 실행에서만 편합니다. 람다가 저장되거나 비동기로 넘어가면 값 캡처, 스마트 포인터, *this 복사가 더 안전합니다.