호출 가능 값 선택 기준

호출 가능한 객체는 상태와 재사용성으로 고릅니다

STL 알고리즘에 전달하는 동작이 짧은 일회성인지, 이름과 상태를 가진 재사용 단위인지에 따라 람다와 함수 객체의 선택이 달라집니다.

Function

일반 함수

상태가 필요 없고 여러 곳에서 같은 동작을 공유할 때 단순합니다.

Functor

operator() 클래스

멤버 변수로 기준값을 들고, 타입 이름으로 의미를 오래 유지할 수 있습니다.

Lambda

즉석 함수 객체

짧은 조건이나 변환을 알고리즘 호출 지점에 붙여 기준을 옆에 둡니다.

값 캡처 [x]

호출 시점의 값을 보존해야 하거나 외부 값을 바꾸지 않을 때 사용합니다.

참조 캡처 [&x]

외부 상태를 읽고 바꿔야 할 때 쓰되, 객체 수명이 알고리즘 호출보다 짧아지지 않게 확인합니다.