function template

함수 템플릿 패턴

template, T, 명시적 템플릿 인수, 오버로딩은 같은 로직을 여러 타입에 적용하는 규칙입니다.

template

타입 매개변수 T

호출 시 인수 타입을 보고 실제 함수가 만들어집니다.

타입 추론

T 추론 호출

서로 다른 타입을 섞으면 추론 실패나 변환 문제가 생길 수 있습니다.

명시적 지정

템플릿 인수 명시

추론이 애매할 때 호출 의도를 드러내는 방법입니다.

오버로딩

템플릿 오버로드 선택

특정 타입만 다른 동작이 필요할 때 별도 오버로드를 둘 수 있습니다.

장점 중복 함수를 줄이면서 타입 안정성을 유지합니다.
함수 템플릿 패턴 한계 a + b나 a > b가 없는 타입에는 본문이 성립하지 않습니다.
에러 위치 템플릿 오류는 인스턴스화 시점에 길게 나타날 수 있습니다.