인스턴스화와 특수화
반응형
템플릿에서 인자를 실제 값으로 치환해 템플릿을 일반 클래스,
함수나 멤버 함수로 생성하는 과정을 템플릿 인스턴스화 라고 한다.
그 결과 생성된 실체(클래스, 함수 또는 멤버함수)를 일반적으로 특수화 라고 한다.
하지만 인스턴스화만이 특수화를 하는 유일한 방법은 아니다.
템플릿 파라미터를 특별히 치환해 명시적 특수화를 선언하는 방법도 있고,
부분적으로만 특수화 한 부분특수화도 있다.
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>
{ .. }
함수나 멤버 함수로 생성하는 과정을 템플릿 인스턴스화 라고 한다.
그 결과 생성된 실체(클래스, 함수 또는 멤버함수)를 일반적으로 특수화 라고 한다.
하지만 인스턴스화만이 특수화를 하는 유일한 방법은 아니다.
템플릿 파라미터를 특별히 치환해 명시적 특수화를 선언하는 방법도 있고,
부분적으로만 특수화 한 부분특수화도 있다.
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>
{ .. }
'Study > Template' 카테고리의 다른 글
템플릿 인자와 템플릿 파라미터 (0) | 2010.07.08 |
---|---|
함수 템플릿에 문자열 리터럴을 인자로 사용. (0) | 2010.07.02 |
템플릿 템플릿 파라미터 (0) | 2010.06.30 |
데이터형이 아닌 클래스 템플릿 파라미터 (2) | 2010.06.25 |
기본 템플릿 인자 (0) | 2010.06.25 |
TAGS.