resolution funnel

오버로드 해석은 후보를 모으고 하나로 좁히는 과정이다

컴파일러는 이름이 같은 후보를 모두 본 뒤, 호출 가능한 함수만 남기고 변환 비용이 가장 낮은 하나를 선택합니다.

01후보 수집

이름이 같은 함수 선언을 모두 모읍니다.

02호출 가능 필터

인자 개수와 기본 변환으로 부를 수 있는 후보만 남깁니다.

03순위 비교

정확한 일치와 변환 비용을 비교합니다.

04하나 선택

최적 후보가 하나면 호출하고, 둘 이상이면 오류입니다.

정확한 일치타입이 그대로 맞아 가장 우선합니다.
승격/변환char에서 int, int에서 double처럼 비용이 듭니다.
모호성비슷하게 좋은 후보가 둘 이상이면 컴파일 오류가 납니다.
핵심: 오버로드 해석은 “될 수 있는 후보”가 아니라 “가장 좋은 후보 하나”를 찾아야 성공합니다.