상태 필요 여부
비교 기준값, 카운터, 설정을 보관해야 하면 함수 객체나 캡처 lambda가 필요하다.
statefulC++에서 callable은 함수 포인터, 함수 객체, lambda, std::function까지 포함하며, stateful predicate와 capture 수명은 STL 알고리즘 결과와 안정성을 바꾼다.
비교 기준값, 카운터, 설정을 보관해야 하면 함수 객체나 캡처 lambda가 필요하다.
stateful값 캡처는 복사본, 참조 캡처는 원본 수명에 의존한다.
[=] vs [&]sort, find_if, count_if는 predicate를 복사할 수 있으므로 부작용 의존을 줄인다.
predicate copies저장/교체 가능한 콜백 API가 필요하면 std::function을 쓰되 할당 비용을 고려한다.
erasure cost