호출 형태
함수 포인터, 함수 객체, 람다 중 상태가 필요한지로 선택한다.
상태 필요 여부함수 객체, 람다, std::function은 모두 호출 가능하지만 비용과 타입 정보가 다르다. 알고리즘에 넘길 때 캡처 수명, inline 가능성, type erasure 비용을 같이 본다.
함수 포인터, 함수 객체, 람다 중 상태가 필요한지로 선택한다.
상태 필요 여부참조 캡처가 알고리즘 실행 시점까지 살아 있는지 확인한다.
dangling 위험템플릿 인자로 callable을 받으면 구체 타입이 유지되어 inline 최적화가 쉽다.
generic callable저장·교체가 필요하면 std::function을 쓰되 할당과 간접 호출 비용을 고려한다.
편의와 비용