template 과 typedef 선언,정의

2015. 1. 9. 20:13책/삽질 헤프닝


template<typename Datatype>

typedef struct Node        //컴파일 에러

{

Datatype data;

Node* prev;

Node* next;

};


위와 같이 선언,정의할 경우에 컴파일에러 발생


typedef 선언은 기존의 형식을 다른 형식의 동의어를 만들어 주는데,

Node 구조체는 template struct 이므로 특수화가 되기 전에는 형식(기존의)을 알 수 없다

따라서 typedef 선언을 할 수 없으므로 에러발생


template<typename Datatype>

struct Node

{

Datatype data;

Node* prev;

Node* next;

};


C++ 부터는 struct 다음에오는 태그명만으로도 사용자정의타입명으로 쓸 수 있으므로 typedef 를 쓰지않도록 한다