template
**일반화 프로그래밍(generic programming)**을 구현할 수 있는 강력한 도구입니다. 이를 사용하면 데이터 타입에 의존하지 않는 코드를 작성할 수 있어 코드의 재사용성을 높일 수 있습니다.
템플릿의 기본 문법
C++ 템플릿은 두 가지 주요 유형이 있습니다:
1. 함수 템플릿

- template <typename T>: 템플릿 선언부.
- T: 임의의 데이터 타입을 나타내며, 호출 시 구체적인 타입으로 대체됩니다.
2. 클래스 템플릿
- template <typename T>: 클래스의 데이터 타입을 일반화.
- Box<int>와 같은 방식으로 구체적인 타입을 지정.
템플릿을 사용할 때 고려해야 할 사항
1. 다중 타입 지원
2. 기본 타입 제공
템플릿 파라미터에 기본값을 설정할 수 있습니다.
3. 특수화(Specialization)
특정 타입에 대해 템플릿을 특수화할 수 있습니다.
템플릿의 장점
- 데이터 타입에 의존하지 않는 일반화된 코드 작성 가능.
- 코드 중복 제거.
- 컴파일 타임에 타입 검사가 이루어져 안전성 증가.
템플릿의 단점
- 컴파일 시 코드가 인스턴스화되므로, 코드 크기가 증가할 수 있음.
- 디버깅이 복잡할 수 있음 (특히 복잡한 템플릿 코드는 오류 메시지가 길고 이해하기 어려울 수 있음).
'C++ > 유용한 도구' 카테고리의 다른 글
유틸리티 클래스 - pair (0) | 2025.01.09 |
---|---|
유틸리티 클래스 - tuple (0) | 2025.01.09 |