클래스 템플릿은 결국 클래스를 만드는 틀이다. 컴파일 시간에 전달된 타입을 가지고 클래스를 생성하게 된다. 이 때 특정 타입에 대해 다른 틀을 사용해서 클래스를 만드려면 특수화(Specialization) 또는 부분 특수화(Partial Specialization)을 사용한다. // primary template: 기본 템플릿 template<typename T> class Stack { T data; public: void push(T a) {cout << "T" << endl;} }; // 부분 특수화(partial specialization) // T가 포인터 타입일 경우 아래 템플릿을 사용하자 template<typename T>class Stack<T*> { T data; public: void push(T a) {cout << "T*" << endl; } }; // 특수화(Specialization) // T가 char*일때 아래 템플릿을 사용하자. T가 필요 없으니 T ...
#code
#object
#specialization
#template
#typename
#목적코드
#템플릿
#특수화
#특정타입
원문링크 : [정리] template specialization