Concepts - 도전 4 제약 기반 mini pipeline 만들기
목표
Concepts와 ranges 감각을 연결해 작은 파이프라인 유틸리티를 만든다.
요구 사항
pipe_collect같은 함수 템플릿을 작성한다.- 입력은
input_range만 허용한다. pred는std::predicate,proj는 호출 가능 객체여야 한다.- 출력 컨테이너는
push_back가능한 타입만 허용한다.
검증 포인트
std::vector<int>에서 홀수만 골라 제곱해 수집되는가std::list<int>입력도 같은 코드로 처리되는가push_back이 없는 출력 타입은 컴파일 단계에서 거절되는가
메모
- SFINAE 대신
requires또는 named concept를 사용한다. - 실패 케이스 2개를 주석으로 남긴다.