template 특수화

보물창고·2022년 3월 20일
0

템플릿 특수화

: 기본 템플릿을 갖추고 있는 상황에서 특정한 자료형에 대한 처리를 하는 템플릿

  • 반드시 기본 템플릿이 있어야 함.

언제 사용할까?
특정 타입에 대한 틀을 명시할 필요가 존재할 경우.


-> 노락색 네모칸이 템플릿 특수화를 나타낸 것임.
-> 여기서는 첫번째 인자가 포인터로 진입할 경우에 대한 템플릿 특수화임.
//기본 템플릿이 있기 때문에 오류 발생하지 않음.
//기본 템플릿이란? 동일한 구조체명으로 나타낸 템플릿 형태

  • 기본 템플릿이 없다면?

    -> 문제 발생함.

템플릿 형태에 대한 구분

  • primary template : 기본 템플릿
  • partial template : 부분 특수화
  • specialization : 특수화

재귀형태의 템플릿

  • template 타입을 3개 이상으로 작성할 때, Test<T , U, V> 처럼
    작성하는 것이 아니라, 아래 그림처럼 재귀형태로 작성해야 함.

주의사항

  • 템플릿의 티폴트 값은 primary 템플릿에서만 가능함.

-> 뭔소리냐?

예제

  • 왜냐하면 특수화의 경우는 primary템플릿의 값을 가지고 옴.


-> 출력시 n값은 primary의 10값을 가지고 오는 것을 확인할 수 있음.

멤버 함수만 특수화하고 싶을 경우.

: specialization 주의사항 강의 마지막 내용.

profile
🔥🔥🔥

0개의 댓글