인스턴스화와 특수화

반응형
템플릿에서 인자를 실제 값으로 치환해 템플릿을 일반 클래스,
함수나 멤버 함수로 생성하는 과정을 템플릿 인스턴스화 라고 한다.

그 결과 생성된 실체(클래스, 함수 또는 멤버함수)를 일반적으로 특수화 라고 한다.

하지만 인스턴스화만이 특수화를 하는 유일한 방법은 아니다.
템플릿 파라미터를 특별히 치환해 명시적 특수화를 선언하는 방법도 있고,
부분적으로만 특수화 한 부분특수화도 있다.

tempate<typename T1, typename T2>             // 일반 클래스 템플릿
class MyClass
{ .. }

template<>                                                   // 명시적 특수화
class MyClass<std::string, float>
{ .. }

template <typename T>                                 // 부분 특수화
class MyClass<T, T>
{ .. }

template <typename T>                                 // 부분 특수화
class MyClass<bool, T>
{ .. }


TAGS.

Comments