[C++] 템플릿 - 1 (함수템플릿, 구체화, 명시적 인수, 임의 타입 지원 조건)
함수템플릿 타입만 다른 함수 C++은 여러가지 개발 방식을 사용할 수 있다. C++은 C언어의 상위버전이므로 함수 위주의 구조적 기법을 쓸 수도 있고, 클래스를 활용한 객체 지향 기법도 쓸 수 있다. 이외에 임의 타입에 대해 동작하는 함수와 클래스를 작성하는 일반화 기법도 사용할 수 있다. C++ 표준 라이브러리인 STL이 일반화 기법으로 작성된 좋은 예시이다. 일반화는 템플릿에 의해 구현된다. 타입이 엄격한 C언어는 호환되지 않는 타입끼리 대입할 수 없어 비슷한 함수라도 타입별로 따로 만들어야하는 경우가 많다. 다음 예제는 두 변수의 값을 교환하는 swap 함수를 작성한다. #include void swap(int& a, int& b) { int t; t = a; a = b; b = t; } void ..