Concepts - 도전 4 제약 기반 mini pipeline 만들기


목표

Conceptsranges 감각을 연결해 작은 파이프라인 유틸리티를 만든다.

요구 사항

  • pipe_collect 같은 함수 템플릿을 작성한다.
  • 입력은 input_range만 허용한다.
  • predstd::predicate, proj는 호출 가능 객체여야 한다.
  • 출력 컨테이너는 push_back 가능한 타입만 허용한다.

검증 포인트

  • std::vector<int>에서 홀수만 골라 제곱해 수집되는가
  • std::list<int> 입력도 같은 코드로 처리되는가
  • push_back이 없는 출력 타입은 컴파일 단계에서 거절되는가

메모

  • SFINAE 대신 requires 또는 named concept를 사용한다.
  • 실패 케이스 2개를 주석으로 남긴다.