후보 생성
호출이나 타입 사용에서 적용 가능한 primary template과 특수화 후보를 모은다.
먼저 후보 집합템플릿 특수화는 코드를 더 많이 쓰는 문법이 아니라 컴파일러가 어떤 구현을 고를지 정하는 규칙이다. primary, partial, full specialization과 overload를 같은 표에서 비교한다.
호출이나 타입 사용에서 적용 가능한 primary template과 특수화 후보를 모은다.
먼저 후보 집합포인터, 참조, const, 배열, 특정 타입처럼 더 구체적인 패턴이 있는지 확인한다.
구체성 비교partial specialization끼리는 어느 쪽이 더 특수한지 컴파일러가 비교한다.
모호하면 오류단순 분기는 if constexpr나 concept overload가 더 읽기 쉬울 수 있다.
과한 특수화 경계