스터디/C++
[ C++ ] template<typename T>과 template<>
알 수 없는 사용자
2019. 12. 1. 15:22
언제 template<typename T>를 선언해야하고
언제 template<>을 선언해야 할까?
템플릿을 정의할 때는 template<typename T> 또는 template<>와 같은 선언을 둬서 템플릿의 일부 또는 전부를 정의하고 있다는 사실을 컴파일러에게 알려야 한다.
그럼 template<typename T>의 선언이 필요한 경우롸 template<>의 선언이 필요한 경우를 구분하면 된다.
초반에 템플릿을 공부할 때는 많이 헷갈렸는데 결론은 간단하다.
정의 부분에 T가 존재하면 <typename T>를 선언하고 T, T1, T2와 같은 문자가 존재하지 않으면 <>를 선언하면 된다.
template<typename T>
class Temp
{
private:
T num;
};
//---------------------
template<>
class Temp<int>
{
private:
int num;
};
주의할 점은 부분 특수화를 할 경우인데, 문자가 있기때문에 <typename T>와 같은 선언이 필요하다는 것을 잊지말자.