Template class에서 typedef의 상속에 대한 질문 드립니다.
글쓴이: lnh0702 / 작성시간: 목, 2014/10/30 - 5:23오후
안녕하세요 Windows에서 개발한 코드를 Linux로 바꾸면서 문제가 생겨 질문드립니다 ㅜㅜ
윈도우 개발환경은 Visual Studio 2008 에 Intel Compiler를 사용하는 C++ 코드이고 대부분의 코드가 템플릿 클래스로 이루어져 있습니다.
이 코드를 Linux에서 Intel C++ 환경을 구축하여 컴파일을 했더니 다음과 같은 형태의 컴파일 에러가 발생하는데 코드를 수정하지 않고 해결하는 방법을 찾고자 합니다.
template<typename T> class A { public: typedef std::vector<T> Vec_t; }; template<typename T> class B : public A<T> { private: Vec_t v; // fails - Vec_t is not recognized };
이러한 코드가 컴파일러의 차이때문인지 윈도우에서는 컴파일이 되고 리눅스에서는 컴파일이 되지 않습니다.
현재 대부분의 코드가 typedef를 부모클래스에서 해놓고 그걸 상속받아서 쓰는 형태로 되어 있어 코드 수정량이 어마어마해지는 문제가 있습니다.
어떻게 해결해야 할까요?? 조언 부탁드립니다.
Forums:
댓글 달기