template, T, 명시적 템플릿 인수, 오버로딩은 같은 로직을 여러 타입에 적용하는 규칙입니다.
호출 시 인수 타입을 보고 실제 함수가 만들어집니다.
서로 다른 타입을 섞으면 추론 실패나 변환 문제가 생길 수 있습니다.
추론이 애매할 때 호출 의도를 드러내는 방법입니다.
특정 타입만 다른 동작이 필요할 때 별도 오버로드를 둘 수 있습니다.