![[정리] template 과 typename [정리] template 과 typename](https://mblogthumb-phinf.pstatic.net/MjAyMDAzMTRfMTQ2/MDAxNTg0MTkwODU4OTc5.__7VrcNrQDyup1MED4rDddUm0pxat5SNm3iSXKM2qB4g.K4oqE6N0RYUfyCcoRitOesNEBmK12VubIn7Y8NWQ7gAg.PNG.ljk3815/20200314_220047.png?type=w2)
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