Hey all,
I'm trying to pass a list into a function to edit it but when I
compile using g++ I continue to get the following error:
maintainNeighbors.cpp:104: error: invalid initialization of non-const
reference of type 'std::list<HostID, std::allocator<HostID> >&' from
a temporary of type 'std::list<HostID, std::allocator<HostID> >*'
helpers.cpp:99: error: in passing argument 1 of `void
CheckIfNeighborsHaveSentHello(std::list<HostID,
std::allocator<HostID>
&)'
The function is shown below:
void CheckIfNeighborsHaveSentHello(std::list<struct HostID>
&Neighbors)
{
std::list<struct HostID>::iterator it;
std::list<struct HostID>::iterator LastIt;
struct timeb TimeBuffer;
ftime( &TimeBuffer );
it=Neighbors.begin();
while (it!=Neighbors.end())
{
int Del=0;
if (TimeBuffer.time - it->LastHelloRec > 40)
Del=1;
LastIt = it;
++it;
if (Del==1)
Neighbors.erase(LastIt);
}
}
And the objects contained in the list are shown below, along with how
it is defined and the function call itself:
struct HostID {
char IP[16];
int Port;
int LastHelloRec;
int LastHelloSent;
};
std::list<struct HostID> ActiveNeighbors;
CheckIfNeighborsHaveSentHello(&ActiveNeighbors);
Here is the problem, expecting a reference, not a pointer ...