|
Template 에서 타입으로 간주되는 의존적인 네임에 대해서는 'typename' 키워드를 명시적으로 지정해 주어야 하는
C++ 랭귀지 스펙에 따르기 위해서... Visual Studio 2010 C++ 컴파일러가 수정 되었기 때문인 것으로 보여 지네요.
아래와 같이 'typename' 키워드를 명시적으로 지정해 보세요...
template <class T>
class gaga
{
....
typename haha<T>::A a;
....
};
...
프로그래밍~! 님이 쓰신 글 :
: 어려운 문제는 절대 아닌것 같은데 하루종일 해결이 안되네요 ㅠㅠ
:
: 어떤 내용이냐면
:
: enum1.h 에
:
: template<class T>
: class haha{
:
: enum A 정의됨
:
: };
:
: 이런 내용이 있고
:
: enum2.h에는
:
: #include"enum1.h"
: template<class T>
: class gaga{
:
: haha에 정의된 enum형인 A형의 변수 a를 설정하려 함
:
: };
:
:
: 여기서 "haha에 정의된 enum형인 A형의 변수 a를 설정하려 함"
: 요부분이 문제인대요 ㅠㅠ
: V.S 6.0에서는 haha<T>::A a; 로 쓰면 잘 돌아갔는데
: V.S 2010에서는 이게 안돌아가네요 ㅠㅠㅜㅠㅠㅠ
: 아예 haha<T>:: 를 하면 항상 나타나는 그 변수목록이 안떠요 (Intelisense: '사용할 수 있는 변수가 없습니다')
:
:
: 혹시나 template이 문제인가 해서 template<class T>를 전부 지우고
: haha::A a; 이렇게 시도해보면 또 잘 돌아가네요 V.S2010에서도..
:
: 혹시 아시는 분은 제발 도움 부탁드리옵니다 ㅠㅠ 중요한거라...ㅠㅠㅠㅠ
|