C++/유용한 도구

템플릿(template)

coding-potato 2025. 1. 10. 15:45

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