혼동되는_typename / template

phoenixKim·2022년 3월 17일
0

temp

목록 보기
3/11

//코드 누리 강의를 보고 공부한 내용입니다.
//이번 강의는 처음 보는 내용임.

클래스 이름에 콜론 :: 2개를 적을 수 있는 것은

값 : enum 상수, static 멤버 변수
타입 : typedef, using
이 있음.

헷갈리는 문제...



->
컴파일러의 내용을 보면, 값으로 받아들였다는 것임.
안되는 이유에 대해서 생각을 해보면, 컴파일러 입장에서
T::DWORD 에서 T는 임의의 type임, template이므로 int가 들어올수도 있는데?
어떻게 판단할 것이냐?? 이거임.

  • typename을 붙여보자.

    -> 이상 없음

  • 하지만 이때는 클래스에 DWORD라는 값이 있어야 함.

  • 그리고 클래스만 처리 가능

느낀점.

T::DWORD를 작성할 경우, 컴파일러는 DWORD를 값으로 해석함.
typename T::DWORD로 작성할 경우는 type으로 해석함.

profile
🔥🔥🔥

0개의 댓글

관련 채용 정보