01. 함수 템플릿
- 템플릿을 선언할 때는 template이라는 키워드를 사용
- <typename T> 처럼 typename 키워드 뒤에 함수 템플릿에서 ‘임의의 데이터 형식’을 나타낼 이름을 작성. 예에서는 ‘T’라고 작성했다.
- 템플릿을 사용하면 어떤 형식이든지 대응할 수 있어 유연하지만, 모든 데이터 형식을 고려하는 것은 꽤 어려운 문제이다.
- 템플릿 특수화( Template specialization ) : 어떠한 데이터 타입이던지 그에 맞게끔 자동으로 값을 반환해주는 템플릿 함수에서도 특정 타입에만 특정 반환 값을 내도록 따로 만들어 줄 수 있는데, 이를 특수화라고 한다.
02. 클래스 템플릿
- 클래스를 만들 때 데이터 타입을 유연하게 결정할 수 있도록 해주는 틀이다.