타입을 결정합니다
max(3, 5)는 T=int로, 문자열 포인터 비교는
다른 의미가 될 수 있습니다.
함수 템플릿은 호출 타입마다 실제 함수가 만들어지므로, 오류도 템플릿 정의와 인스턴스화 지점을 함께 봐야 합니다.
T가 무엇으로 결정됐는지 먼저
확인합니다.
+, >, 복사가 해당 타입에
가능한지 봅니다.
max(3, 5)는 T=int로, 문자열 포인터 비교는
다른 의미가 될 수 있습니다.
호출된 타입 조합에 대해서만 컴파일러가 실제 함수 본문을 검사합니다.
템플릿과 일반 함수가 함께 있으면 오버로드 해석 규칙이 먼저 적용됩니다.
호출 인스턴스 함수 템플릿은 하나의 함수처럼 보이지만, 실제로는 호출 타입별 함수 가족을 만들어 내는 문법입니다.