Вы плохо используете методы списка:
if(m_ErrorList.size!=0)
size
- это метод, поэтому его нужно вызвать (в скобках):
if(m_ErrorList.size()!=0)
Обратите внимание, что size
медленно для list
; вы можете захотеть реализовать GetLastError так:
unsigned int GetLastError(){ if(!m_ErrorList.empty())return m_ErrorList.back(); }
m_ErrorList.erase(pos);
стирание занимает итератор, а не целое число. Поэтому вам лучше использовать
std::list::iterator it=m_ErrorList.begin();
std::advance(it, pos);
m_ErrorList.erase(it);
обратите внимание, что это тоже не особо эффективный способ.
Кстати, проверьте, что вам нужно list
; vector
может служить вам лучше.