Я работаю над чьим-либо другим кодом, которого больше нет, и он является старым CodeWarrior Code. XCode жалуется на это:
template <class listClass,class itemClass>
void FxStreamingObjectList<listClass,itemClass>::StreamOut(FxStream *stream)
{
if (listClass::size())
{
stream->PutSeparator();
stream->PutString(mFieldName.c_str());
stream->PutSeparator();
stream->PutBeginList();
stream->Indent(+1);
listClass::iterator iter;
for (iter=listClass::begin(); iter != listClass::end(); iter++)
{
stream->PutSeparator();
stream->PutString( (*iter)->GetClassID() );
}
(*iter)->StreamOut(stream);
}
stream->Indent(-1);
stream->PutSeparator();
stream->PutEndList();
stream->PutSeparator();
}
}
Я получаю сообщения об ошибках listClass::iterator iter;
и for (iter=listClass::begin(); iter != listClass::end(); iter++)
:
error: expected `;' before 'iter'
error: 'iter' was not declared in this scope
Другие места в том же .h, те же типы объявлений шаблонов, которые я получаю как:
error: dependent-name 'listClass::iterator' is parsed as a non-type, but instantiation yields a type
на:
for (listClass::iterator iter=listClass::begin(); iter != listClass::end(); iter++)
Как мне решить эти ошибки? Я не очень хорошо знаю шаблоны, так что я запутался и не уверен, с чего начать. Хороший шаблонный ресурс также приветствуется.