상태를 멤버로 보관합니다
operator()를 가진 객체는 기준값, 누적값 같은 상태를
명확히 가집니다.
함수 객체, 람다, 함수 포인터, std::function은 모두
호출되지만 상태 저장, 타입 노출, 비용이 다릅니다.
operator()를 가진 객체는 기준값, 누적값 같은 상태를
명확히 가집니다.
짧은 조건식과 지역 문맥을 알고리즘 호출부에 가까이 둘 수 있습니다.
std::function은 다양한 호출 대상을 담지만 간접 호출
비용을 고려합니다.
상태 전달 호출 가능한 객체의 차이는 문법 모양보다 “상태를 어디에 두고 얼마나 오래 쓸 것인가”에서 갈립니다.