템플릿 메타 프로그래밍 (1) 템플릿

RushBsite·2023년 10월 17일
0

P&P C++

목록 보기
2/2

템플릿(template)

템플릿은 argument types 의 요구사항 기술을 최소화 한다.

template = 형판
즉, 사용자가 원하는 타입을 넣어 주면, 알아서 코드를 찍어내는

클래스 탬플릿(Class template)

template <typename T>
class Vector {
  T* data;
  //...

아래에 정의되는 클래스에 대해 template을 정의하고 인자로 T(타입명)을 받는다.

클래스 템블릿 인스턴스화(class template instantiation) 란 클래스 탬플릿에 인자를 전달해서 실제 코드를 생성하는 것을 말한다. (템플릿이 인스턴스화 되지 않는다면, 컴파일시 아무런 코드로 변환되지 않음)

함수 탬플릿(Function template)

  template <typename T>
  T max(T& a, T& b) {
  // ...
  }
  max(1, 0) // T 는 int 

매 호출 문장마다 함수를 만드는 것은 아님, 한번 함수가 만들어지면, 다음에는 만들어진 함수를 호출

템플릿 특수화

profile
게임 기획/개발 지망생

0개의 댓글