I'm sure that you've run across this one already, but in case you haven't:
template <class TElem> class NameIdPoolEnumerator : public XMLEnumerator<TElem>,
public XMemory
//...
// -----------------------------------------------------------------------
unsigned int fCurIndex;
NameIdPool<TElem>* fToEnum;
MemoryManager* const fMemoryManager; <<<<<<<<<<<<<<
};
//...
template <class TElem> NameIdPoolEnumerator<TElem>& NameIdPoolEnumerator<TElem>::
operator=(const NameIdPoolEnumerator<TElem>& toAssign)
{
if (this == &toAssign)
return *this;
fMemoryManager = toAssign.fMemoryManager; // <<< HUH? The ptr is const people
fCurIndex = toAssign.fCurIndex;
fToEnum = toAssign.fToEnum;
return *this;
}