함수 정의 안에서 실제 타입이 들어갈 자리를 T로 남긴다.
template <typename T>FUNCTION TEMPLATE
함수 템플릿은 타입만 다른 반복 함수를 컴파일 시점에 만들어 준다
동일한 로직을 한 번 작성하고, 호출 타입에 맞춰 구체 함수가 인스턴스화된다.
호출 인자를 보고 컴파일러가 T를 int, double, string 등으로 결정한다.
max(10, 20)필요한 타입 조합의 함수 코드가 생성되고 타입 불일치는 컴파일 단계에서 막힌다.
max<double>(10, 3.14)
판단 기준: 로직은 같고 타입만 다르면 템플릿이 적합하지만,
사용하는 연산을 그 타입이 지원해야 한다.