Specialization

템플릿 특수화 선택 순서

특수화는 기본 템플릿으로 부족한 타입 조합에 더 정확한 구현을 제공하는 장치입니다.

기본형

Primary template

Primary template이 모든 타입의 기본 동작을 맡습니다.

부분 특수화

패턴 좁히기

포인터, 배열, 특정 패턴처럼 일부 조건을 좁힙니다.

완전 특수화

특정 타입 전용

특정 타입 하나만 기본 템플릿과 다른 알고리즘 또는 저장 정책으로 분리합니다.

검증

선택 후보 확인

가장 구체적인 후보가 실제로 선택되는지 호출 예제로 확인합니다.

과용 위험

특수화가 많아지면 규칙이 숨어서 읽기 어려워집니다.

대안

단순 분기는 if constexpr이나 concept 제약이 더 명확할 수 있습니다.

예외 규칙

기본 템플릿과 특수화 중 어느 코드가 컴파일되는지 추적할 수 있어야 합니다.