[정리] template 과 typename


[정리] template 과 typename

1. "클래스 이름::" 으로 접근 가능한 요소들 - 값: enum 상수, static 멤버 변수 - 타입: typedef, using 2. 템플릿 의존적으로 타입의 이름에 접근할 때에는 typename 카워드를 사용한다. T::DWORD 컴파일러가 DWORD를 값으로 해석 typename T::DWORD 컴파일러가 DWORD를 타입으로 해석 3. 템플릿이 아닌 경우 typename을 붙이면 안된다. typename T::DWORD * p; //ok typename Test::DWORD * p; // error T::DWORD를 어떻게 해석할까? 1. DWORD를 값으로 해석하는 방법 . DWORD는 T 타입 안에 있는 "static 멤버 데이터 또는 enum 상수"인데 전역 변수 p와 곱하기를 하고 있다. 2. DWORD를 타입으로 해석하는 방법 . DWOR은 T 타입 안에 있는 내포 클래스 또는 typedef 인데, 타입의 포인터 변수 p를 선언하고 있다. 컴파일러는 기본적으로 ...


#템플릿 #클래스 #멤버변수 #using #typename #template #static #enum #DWORD #class

원문링크 : [정리] template 과 typename