Soft Ware/C++ 언어!!

템플릿의 구체화 및 특수화

달려가보자 2011. 10. 22. 06:47
템플릿 구체화 및 특수화

구체화란

-> 템플릿은 "함수를 어떻게 만들지 정의" 해놓은 것일뿐이고

실제로는 컴파일러가 호출을 위해서 사용된 변수의 타입을 보고 "함수를 만들어 내는 " 과정을

구체화 라고 한다.!! 

특수화란?

-> 임시적 구체화  , 명시적 특수화 , 명시적 구체화 모두를 한데 묶어서 특수화 라고한다.!!

임시적 구체화란

ex)

template <class Any>
void Swap(Any &a,Any &b);

이경우 메인 함수에서 swap을 호출시에 인자값에 형태에 맞춰서 자동으로 함수를 생성하고

실행된다

명시적 구체화란

ex)

template void Swap<int>(int &a, int &b) 

이경우 int 형에 맞춰서 함수를 생성하라고 뜻이다. 이를 명시적 구체화라고 한다.

명시적 특수화란

앞에 구도체 특정 멤버 변수를 교체시 사용하는 방법이 명시적 특수화 이다.