특수화3 [ C++ ] 함수 템플릿, 클래스 템플릿과 static template void StaticValue() { static T num = 0; num += 1; cout 2019. 12. 1. [ C++ ] 클래스 템플릿의 특수화( Class Template Specialization ) 이전에 함수 템플릿의 특수화에 대해 포스팅을 한 적이 있다. 함수 템플릿을 특수화하는 이유는 특정 자료형에 대해서는 개발자가 커스텀한 다른 템플릿 함수를 생성하기 위해서이다. 이처럼 클래스 템플릿을 특수화하는 이유는 특정 자료형에 대해서는 다르게 구분이 되는, 템플릿 클래스의 객체를 생성하기 위해서이다. 예제를 보자. Hello 클래스 템플릿을 double형에 대해서 특수화하였다. 그래서 double형으로 Hello 객체를 생성 시에 특수화한 부분을 기반으로 객체가 생성된 것을 확인할 수 있다. 그럼 Hello 클래스에 typename을 하나 더 뒀다고 생각해보자. template class Hello { ... } 그럼 이에 대하여 char형으로 특수화를 시키면 다음과 같이 될 것이다. template.. 2019. 12. 1. [ C++ ] 함수 템플릿의 특수화(Specialization) 함수 템플릿의 특수화(Specialization)는 특정 자료형에 대해서만 다른 템플릿 함수를 생성할 수 있도록 커스텀해주는 것이다. 지난 템플릿 포스팅에 사용하였던 Adder 함수 템플릿을 기반으로 예제를 보겠다. template const char * Adder(const char * chr1, const char * chr2) { cout 2019. 11. 29. 이전 1 다음