Programming Language/C++

14-4 템플릿과 static

JTesseract 2019. 6. 26. 15:42

-static지역변수는 템플릿 함수별로 각각 존재함

-static멤버변수는 템플릿 클래스별로 각각 존재함

 

<예시>

함수템플릿의 static변수 선언

 

template <typename T>

void ShowStaticValue(void)

{

 static T num=0;

 num+=1;

}

 

클래스 템플릿의 static변수 선언

 

*template<typename T>와 template<>의 차이

-일단, 템플릿 관련 정의에는 이 표현을 선언해서 템플릿의일부 또는 전부를 장악하고 있다는 사실을 컴파일러에게 알림

 

-template<typename T> : template과 관련있고 템플릿 매개변수가 필요한 경우

-template<> : 템플릿 매개변수가 필요없지만 template과 관련있음을 알려야 하는 경우

 

 

<템플릿 static 멤버변수 초기화의 특수화>

-클래스 템플릿 정의의 일부인 초기화문을 대상으로도 진행가능

template<>

long SimpleStaticMem<long>::mem=5;