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;