server.hServer.cpp: In member function 'void Server::EraseConnect(int)':
Server.cpp:199: error: no matching function for call to 'std::vector<void*, std::allocator<void*> >::erase(int&)'
/usr/include/c++/4.2/bits/vector.tcc:109: note: candidates are: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = void*, _Alloc = std::allocator<void*>]
/usr/include/c++/4.2/bits/vector.tcc:121: note: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = void*, _Alloc = std::allocator<void*>]
*** Error code 1
Код: Выделить всё
#include <vector>
........................................................................
class Server
private:
std::vector<void*> m_ConnectObj;
........................................................................
};
Код: Выделить всё
void Server::EraseConnect(int i)
{
.....................................
m_ConnectObj.erase(i);
......................................
}
void Server::Work(void)
{
int m_ConnectObjItem, m_ConnectStateItem;
HTTPConnect* pconnect;
for(m_ConnectObjItem = 0; m_ConnectObjItem != GetConnectObjSize(); m_ConnectObjItem++)
{
void* pConObj = GetConnectObj(m_ConnectObjItem);
pconnect = (HTTPConnect*)pConObj;
switch(GetConnectState(pConObj))
{
case THR_START:
{
................................................................
break;
}
case THR_STOP:
{
DBG(("STOP:id=%d",pConObj));
pconnect->SetDead();
break;
}
case THR_DEAD:
{
EraseConnect(m_ConnectObjItem);
break;
}
}
................................................................
}
}