본문 바로가기

typename

(3)
5장, 템플릿의 고급 기능, 1부 개요 저번장까지 이건 이렇고 저건 저렇다 라고 설명한 한 항목이였다. 이번 장은, 실질적으로 코드를 작성하는데 도움이 될 만한 몇가지 문법 들을 설명한다. 5.1 typename 5.2 this 5.3 멤버 템플릿 5.4 템플릿 템플릿 파라미터 5.5 0 초기화 5.6 함수 템플릿에서 문자열 리터럴을 인자로 사용 본문 5.1 typename이란 무엇이고, 어떤 용도인가? 지금까지 typename 은 템플릿 파라미터를 선언할 때 사용하는 키워드로 알고 있었지만, 여기에 한가지 의미가 더 있었다. 바로 "이것은 타입이다" 라고 알려 주는 의미이다. "이것은 타입이다"라는 의미가 왜 필요한가? 만약, 템플릿 파라미터가 클래스일 떄, 그 내부 타입이, "타입" 이라고 일러주지 않는 다면, 컴파일러가 에러를 벹어..
항목 5 : typename ( 난이도 : 7 ) 이번 항목은 typename 에 대해서다, 그냥 알고만 있어도 바로 써먹을 수 있으니, 빠르게 정리하고 넘어가도록 한다. 1. typename의 역활은 무엇인가? ① typename은 템플릿 매개변수의 이름을 정할 때, 사용 된다. ② typename은 템플릿 매개변수로 인한 의존적인 타입을 타입으로 사용할 때, 사용 된다. ① 은 쉽게 이해 하겠지만, ②은 가물 가물 할것이다. 질문 2에서 예제와 함게 설명 한다. 2. 아래 코드의 문제점은 무엇인가? template class X_base { public: typedef T instantaited_type; }; template class X : public X_base { public: bool operator() ( const instantaite..
항목 42: typename의 두가지 의미를 제대로 파악하자. 내가 C++에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve C++ 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 typename .. 뭐 이렇게만 보면 이런게 있었나 싶다. 하지만 템플릿에서는 흔하게 보는 키워드인데, 이 키워드에 대해서 제대로 파악하자고 하는것 같다. 처음부터 진행하자면 typename 과 class 는 똑같은 의미인데, 이렇게 말만 하면 혼동의 요지가 있으니, 코드도 포함해 주는 센스를 발휘해 본다. // ikpil.com or ikpil.tistory.com #include //template // class _T 와 같은 의미 template..