동작의 수명과 재사용 범위에 따라 표현을 고른다
알고리즘에 넘길 동작은 상태, 이름, 재사용성으로 고른다.
operator()상태 있는 객체 호출
lambda짧은 조건 즉석 작성
standard functorless/greater 재사용
std::function보관과 타입 소거
| 구분 | 판단 기준 | 다음 행동 |
|---|---|---|
| 일반 함수 | 상태가 없고 여러 곳에서 재사용 | 이름 있는 함수로 분리 |
| 함수 객체 | 호출 사이 상태를 들고 있어야 함 | 멤버 변수 + operator() |
| 람다 | 짧은 조건/비교를 호출 지점 옆에 둠 | 캡처 범위와 수명 확인 |
| std::function | 서로 다른 callable을 저장해야 함 | 타입 소거 비용 확인 |
핵심 알고리즘에 넘길 동작은 상태가 필요한지, 호출 지점에 남길지, 나중에 보관할지를 기준으로 고른다.