[질문] vector< T >::iterator 관련 warning

philnet의 이미지

안녕하세요...

vector 를 사용하는 template class를 만들어서 사용하다, 생각지 못한 warning을 만나게 되었습니다.

임의의 타입 T 를 받아서, vector< T > 를 멤버함수로 가지고 사용하는 template class 를 만들어서 사용하려고 합니다. 간단하게 예를 들자면,

#include <vector>
using namespace std;

template <typename T>
class MyTester 
{
public: 
	typedef vector< T > VTester;
	typedef vector< T >::iterator VTesterItr;
	MyTester () {};
	~MyTester () {};
//	other operations...
private:
	VTester m_data;
	VTesterItr m_iter;
//	other properties...
};

이 경우, 컴파일하면, 다음의 경고 메시지가 뜹니다...

testStl.h:9: warning: `typename std::vector<T, std::allocator<_CharT>
>::iterator' is implicitly a typename
testStl.h:9: warning: implicit typename is deprecated, please see the
documentation for details

코드 구현해서 실행시켜 사용하는 데는 문제가 없습니다만, 경고 메시지가 계속 뜨는 게 좀 마음에 걸려서요... (환경은 RedHat 9.0, g++ 버전은 3.2.2 20030222 입니다.)

계속 사용해도 문제는 없을까요? 혹은 경고를 없앨 수 있는 방법이 있을까요?

(Standard C++ lib. 에 어느 정도는 익숙해 졌다고 생각했는데... 역시 착각이었나 봅니다... 아... 멀고도 험하군요 ^^;)

doldori의 이미지

philnet의 이미지

감사합니다...

(앞으론 게시판 검색 능력도 같이 키워야 할 듯 싶습니다.)