[정리] template specialization


[정리] template specialization

클래스 템플릿은 결국 클래스를 만드는 틀이다. 컴파일 시간에 전달된 타입을 가지고 클래스를 생성하게 된다. 이 때 특정 타입에 대해 다른 틀을 사용해서 클래스를 만드려면 특수화(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