이상한 오류가 발생하지만 난 말을 컴파일 오류 "예상, 그것은 전에"난 그냥지도 반복자를 선언하려고
는 내가 포함되지 않았기 때문에 그것이 믿는다 전체 std 네임 스페이스 (네임 스페이스 std를 사용하여)하지만 의도적으로 모든 것을 포함하고 싶지 않습니다.
내 코드 :
#include <map>
#include <string>
template <class Object>
class Cont
{
public:
Cont() {}
Object* get(unsigned int nID)
{
std::map <unsigned int, Object*>::iterator it = m.begin(); // error here "expected ; before it" what is this error?
for (; it != m.end(); it++)
{
if ((*it).second->ID == nID) { return (*it).second; }
}
return NULL;
}
std::map <unsigned int, Object*> m;
};
나는이 aswell을 시도했지만 작동하지 않습니다
std::map <unsigned int, Object*>::std::iterator it = m.begin();
이 템플릿 클래스보다 먼저 'Object' 클래스를 전달 하시겠습니까? 그렇지 않다면 그 원인이 될 수 있습니다. –
세부 정보 : http://stackoverflow.com/questions/610245/where-and-why-do-i-have-to-put-template-and-typename-on-dependent-names/613132#613132 –