템플릿 구체화 및 특수화
구체화란
-> 템플릿은 "함수를 어떻게 만들지 정의" 해놓은 것일뿐이고
실제로는 컴파일러가 호출을 위해서 사용된 변수의 타입을 보고 "함수를 만들어 내는 " 과정을
구체화 라고 한다.!!
특수화란?
-> 임시적 구체화 , 명시적 특수화 , 명시적 구체화 모두를 한데 묶어서 특수화 라고한다.!!
임시적 구체화란
ex)
template <class Any>
void Swap(Any &a,Any &b);
이경우 메인 함수에서 swap을 호출시에 인자값에 형태에 맞춰서 자동으로 함수를 생성하고
실행된다
명시적 구체화란
ex)
template void Swap<int>(int &a, int &b)
이경우 int 형에 맞춰서 함수를 생성하라고 뜻이다. 이를 명시적 구체화라고 한다.
명시적 특수화란
앞에 구도체 특정 멤버 변수를 교체시 사용하는 방법이 명시적 특수화 이다.
구체화란
-> 템플릿은 "함수를 어떻게 만들지 정의" 해놓은 것일뿐이고
실제로는 컴파일러가 호출을 위해서 사용된 변수의 타입을 보고 "함수를 만들어 내는 " 과정을
구체화 라고 한다.!!
특수화란?
-> 임시적 구체화 , 명시적 특수화 , 명시적 구체화 모두를 한데 묶어서 특수화 라고한다.!!
임시적 구체화란
ex)
template <class Any>
void Swap(Any &a,Any &b);
이경우 메인 함수에서 swap을 호출시에 인자값에 형태에 맞춰서 자동으로 함수를 생성하고
실행된다
명시적 구체화란
ex)
template void Swap<int>(int &a, int &b)
이경우 int 형에 맞춰서 함수를 생성하라고 뜻이다. 이를 명시적 구체화라고 한다.
명시적 특수화란
앞에 구도체 특정 멤버 변수를 교체시 사용하는 방법이 명시적 특수화 이다.
'Soft Ware > C++ 언어!!' 카테고리의 다른 글
using 지시자와 using 선언 (0) | 2011.10.24 |
---|---|
함수 오버로딩 때 순서 (0) | 2011.10.22 |
구도체 및 클래스시 어느 멤버 변수만 Swap 할때(명시적 특수화) (0) | 2011.10.22 |
Template 을 이용한 Swap (0) | 2011.10.22 |
확률 계산 시 부동소수점 오버플로 (0) | 2011.10.21 |