Concepts - 도전 1 정책 주입 함수 만들기


목표

std::predicatestd::invocable을 이용해 조건과 동작을 주입하는 범용 함수를 만든다.

요구 사항

  • process_if 같은 함수 템플릿을 작성한다.
  • 입력은 range 하나, 조건 함수 하나, 동작 함수 하나를 받는다.
  • 조건 함수는 std::predicate 제약을 만족해야 한다.
  • 동작 함수는 std::invocable 제약을 만족해야 한다.

검증 포인트

  • 정수 벡터에서 짝수만 골라 출력할 수 있는가
  • 상태를 가진 함수 객체도 전달 가능한가
  • 잘못된 조건 함수는 컴파일 단계에서 걸러지는가

메모

  • 런타임 if로 타입을 분기하지 않는다.
  • 제약은 함수 선언부에서 드러나게 작성한다.