이런식으로 함수 오버로딩이 가능하다.
C# 의 Generic타입
이렇게 가능하고 < typename T > 에서 typename이라 되어있는 부분도 class라고 적어 주어도 OK.
여기서 진짜 Class아니다.
T가 "치환 자료형"이다.
typename자리에 어떤게 들어갈지 요청을 했을 때, 그 버젼의 함수가 그제서야 만들어진다.
이렇게 호출해도 컴파일러가 알아서 int버젼이라 인식함.
함수 아니라, "함수 템플릿"이다.
정확하게 만들어질 버젼을 요청하는게 함수 템플릿이다.