Template Function

함수 템플릿 인스턴스화 흐름

함수 템플릿은 호출 시점의 인자 타입을 기준으로 실제 함수 후보를 만들어냅니다.

01

템플릿 선언

타입 매개변수와 반환 타입 관계를 먼저 고정합니다.

02

타입 추론

호출 인자를 보고 T, U 같은 매개변수를 채웁니다.

03

인스턴스화

추론된 타입으로 실제 함수 시그니처를 생성합니다.

04

오버로드 비교

일반 함수와 다른 템플릿 후보까지 함께 비교합니다.

추론 실패

반환 타입만으로는 T를 추론할 수 없는 경우가 많습니다.

명시 지정

복잡한 변환이 끼면 add<int>(...)처럼 타입을 고정합니다.

호출 인스턴스

호출식에서 어떤 실제 함수가 만들어지고 선택되는지 설명할 수 있으면 충분합니다.